URAL_2032_Conspiracy Theory and Rebranding(暴力枚举)
题型:计算几何
题意:给出三角形的三条边,问该三角形的三个顶点能否是直角坐标系中的整数格点。
分析:
设一个顶点在原点,然后作一个长度为a的圆和一个长度为b的圆,暴力求解圆上有多少个整数格点。然后枚举圆a上的整数格点和圆b上的整数格点,看距离是否为c,有的话直接输出,最后也没找到就输出-1.
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<vector>#define LL __int64
using namespace std;struct Point {int x,y;Point(int x = 0 , int y = 0):x(x),y(y) {}void out() {printf("%d %d\n",x,y);}
};vector<Point> v;LL dist(Point T,Point S) {return 1LL*(T.x-S.x)*(T.x-S.x)+1LL*(T.y-S.y)*(T.y-S.y);
}int main() {int a,b,c;while(~scanf("%d%d%d",&a,&b,&c)) {Point O(0,0);v.clear();for(int i=0; i<=a; i++) {LL tmp = 1LL*a*a - 1LL*i*i;int j = sqrt(tmp+0.0);if(1LL*j*j != tmp) j++;if(1LL*j*j != tmp) continue;v.push_back(Point(i,j));}Point B;for(int i=0; i<=b; i++) {LL tmp = 1LL*b*b - 1LL*i*i;int j = sqrt(tmp+0.0);if(1LL*j*j != tmp) j++;if(1LL*j*j != tmp) continue;B = Point(i,j);for(int k=0; k<v.size(); k++) {if(dist(v[k],B) == 1LL*c*c) {O.out();B.out();v[k].out();return 0;}}B = Point(i,-j);for(int k=0; k<v.size(); k++) {if(dist(v[k],B) == 1LL*c*c) {O.out();B.out();v[k].out();return 0;}}B = Point(-i,j);for(int k=0; k<v.size(); k++) {if(dist(v[k],B) == 1LL*c*c) {O.out();B.out();v[k].out();return 0;}}B = Point(-i,-j);for(int k=0; k<v.size(); k++) {if(dist(v[k],B) == 1LL*c*c) {O.out();B.out();v[k].out();return 0;}}}puts("-1");}return 0;
}
URAL_2032_Conspiracy Theory and Rebranding(暴力枚举)相关推荐
- ural 2032 Conspiracy Theory and Rebranding (数学水题)
ural 2032 Conspiracy Theory and Rebranding 链接:http://acm.timus.ru/problem.aspx?space=1&num=2032 ...
- ural 2032 Conspiracy Theory and Rebranding 整点三角形
ural 2032 Conspiracy Theory and Rebranding 链接:https://vjudge.net/contest/175269#problem/I 题意:给定一个三角形 ...
- POJ 3174 暴力枚举
思路: 暴力枚举三个点 判一判 搞定 (x1*y1=x2*y2) x1.y1.x2.y2为他们两两的差 //By SiriusRen #include <cstdio> using nam ...
- codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]
A - Maximal Intersection CodeForces - 1029C 题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化. 解题思 ...
- 最大字段和 冲出暴力枚举
这篇解题报告是对我最近一些题的总结,里面的代码都是我解题,优化,再优化的过程的记录,记录了自己对算法的完善与优化思路,还有对编程哲学的理解:do it,do it well. 很感谢孙老师您,让自己可 ...
- hdu 4587 TWO NODES 暴力枚举+tarjan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意是拿掉两个点 求最多可以把整个图分成几个联通块 注意到有一个模板是可以通过找割点来快速求出 ...
- 一道暴力枚举题Win32版本示例
来看一个问题:该问题的解法是 暴力枚举:这大概是ACM方面的:名称叫火柴棒等式: 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数( ...
- C. Divisibility by Eight【暴力枚举】
暴力枚举即可.枚举1位这种情况,枚举2位这种情况,枚举3位这种情况. 3位满足足以,其他的4位,5位...都包含1000必定满足. #include<bits/stdc++.h> usin ...
- YBTOJ:灯光控制(贪心)(公倍数)(暴力枚举)
文章目录 题目描述 解析 代码 题目描述 解析 没有想出来 首先可以确定开关要么开一次,要么不动,其他都和这俩是等价的 一开始最先想到的就是贪心的方法,每个开关遍历,如果按下会使答案变好就按下. 但是 ...
最新文章
- linux mpp集群环境,Linux环境下,DM8-MPP两节点集群搭建
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
- android查看控件的xml属性,006 Android XML 控件属性设置技巧汇总
- django构建网页_通过解决问题的方式学习django,律师如何构建副业
- mysql 字符串解析_MySQL 动态字符串处理详解
- gluPickMatrix和glReadPixels
- public static void main(String[] args)的理解
- C#统计字符出现的个数【C#】
- 利用营销工具,这家企业从按经验办事的老中医,变为数据化中西医
- 内核中的UDP socket流程(7)——udp_sendmsg
- 【图像融合】基于matalb小波变换(加权平均法+局域能量+区域方差匹配)图像融合【含Matlab源码 1819期】
- php读取excel文件_在PHP中读取Excel文件
- 七周成为数据分析师 第三周:Excel篇
- python-docx文档
- RAW数据格式的图片转换--常用于相机开发和图片旋转
- HTB Doctor
- 使用先根序列作为插入顺序重建二叉搜索树
- 将父类实体类转变子类实体类
- 惊喜盲盒中奖iPhone 13已收到货
- 你知道哪些或者你们线上使用什么GC策略? 它有什么优势,适用于什么场景?