【BZOJ1041】[HAOI2008]圆上的整点
【BZOJ1041】[HAOI2008]圆上的整点
题面
题解
不妨设\(x>0,y>0\)
y^2=(x+r)(x-r)
\]
设\(r-x=ud,r+x=vd,(u,v)=1\)
\]
\(u,v\)一定为完全平方数
则\(u=s^2,v=t^2\)且必有\((s,t)=1\)
\Rightarrow\\
x=\frac{t^2-s^2}{2}d\\
y=dst\
\]
然后枚举\(2r\)的约数即可
代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
ll R, ans;
int main () {
cin >> R;
for (ll i = 1; i * i <= 2 * R; i++) {
if (2 * R % i == 0) {
ll d = i;
for (ll s = 1; s * s <= 2 * R / d; s++) {
ll t = sqrt(2 * R / d - s * s);
if (s * s + t * t == 2 * R / d && __gcd(s, t) == 1) {
ll x = (t * t - s * s) / 2 * d, y = d * s * t;
if (x > 0 && y > 0 && x * x + y * y == R * R) ans += 2;
}
}
if (i * i != R) {
d = 2 * R / i;
for (ll s = 1; s * s <= 2 * R / d; s++) {
ll t = sqrt(2 * R / d - s * s);
if (s * s + t * t == 2 * R / d && __gcd(s, t) == 1) {
ll x = (t * t - s * s) / 2 * d, y = d * s * t;
if (x > 0 && y > 0 && x * x + y * y == R * R) ans += 2;
}
}
}
}
}
printf("%lld\n", (ans + 1) * 4);
return 0;
}
【BZOJ1041】[HAOI2008]圆上的整点的更多相关文章
- bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点
http://www.lydsy.com/JudgeOnline/problem.php?id=1041 设 X>0 ,Y>0 X^2 + Y^2 = R^2 X^2 = R^2-Y^2 ...
- BZOJ1041 [HAOI2008]圆上的整点 【数学】
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4631 Solved: 2087 [Submit][S ...
- [BZOJ1041] [HAOI2008] 圆上的整点 (数学)
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...
- BZOJ1041:[HAOI2008]圆上的整点(数论)
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...
- BZOJ1041 HAOI2008圆上的整点(数论)
求x2+y2=r2的整数解个数,显然要化化式子.考虑求正整数解. y2=r2-x2→y2=(r-x)(r+x)→(r-x)(r+x)为完全平方数→(r-x)(r+x)/d2为完全平方数,d=gcd(r ...
- [bzoj1041][HAOI2008]圆上的整点
我能想得出怎么做才奇怪好吗 题解:http://blog.csdn.net/csyzcyj/article/details/10044629 #include<iostream> #inc ...
- BZOJ 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3621 Solved: 1605[Submit][Sta ...
- bzoj 1041: [HAOI2008]圆上的整点 数学
1041: [HAOI2008]圆上的整点 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2027 Solved: 853[Submit][Stat ...
随机推荐
- [SQL Server]利用索引改善sql语句
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: 1.select * from table1 where name=''z ...
- Java中的消息框
JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...
- include方便查找
#include <assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> //定义错误码#inc ...
- SpringBoot @AutoWired Null
在调用工具类时,若工具类中含有@Autowired注解,这此工具类对象必须同样使用@Autowired注解,否则工具类中的Spring注入的对象都为空值,这里的HadoopTest就是这样 比如MyC ...
- 【模块化】 RequireJS入门教程总结与推荐
之所以学习RequireJS,肯定对 模块化有一定的理解.这里有几篇学习 RequireJS的文章,推荐给大家去学习. Javascript模块化编程(一):模块的写法 Javascript模块化编程 ...
- python第二十三课——dict中的函数
dic1 = {...} dic2 = {...} dic1.update(dic2) 1.update(dict):dic1调用update传入dic2,如果dic2中的内容在dic1中不存在,那么 ...
- 将项目发布到Maven中央仓库的不完整纪要
背景 有几个Utils性质的Jar需要跨项目引用,原本想部署私有Maven仓库,后来感觉太麻烦,索性直接发布到中央库,引用时也方便. 发布成功之后,觉得某些细节还是有必要记录一下. 资源 Sonaty ...
- 有关linqtosql和EF的区别
LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF对数据库架构和我们查询的类型实行了更好的解耦.使用EF,我们查询的对象不再 ...
- SSM框架之批量增加示例(同步请求jsp视图解析)
准备环境:SSM框架+JDK8/JDK7+MySQL5.7+MAVEN3以上+Tomcat8/7应用服务器 示例说明: 分发给用户优惠券,通过checkbox选中批量分发,对应也就是批量增加. 对于公 ...
- Data Binding Android - Type parameter T has incompatible upper bounds : ViewDataBinding and MainAct
Go to your "some_layout.xml" Click right -> Refactor -> Rename (or SHIFT + F6) Renam ...