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 = (R+Y)(R-Y)
令 d=gcd(R+Y,R-Y),A=(R+Y)/d,B=(R-Y)/d
则 gcd(A,B)=1,且A != B
X^2= d^2 *A * B
所以 A * B 为 完全平方数
又因为 gcd(A,B)=1 ,A!=B,所以 A,B 都是 完全平方数
令 a= 根号A,b=根号B
a^2 + b ^2 = 2*R / d
所以 d 必须是 2*R 的 约数
根号(2*R) 枚举 约数 d
1、a^2 + b^2 = 2*R / d
2、a^2 + b^2 = d
对于 每一种 情况 分别 根号复杂度 枚举 a,计算b
判断相应的 A ,B 是否满足 gcd=1 且 A!=B
满足则 ans+1
这只算出了第一象限的情况
根据园的对称性,ans*4 可得 所有 象限内的点
最后在加上4个在 坐标轴上的点即可
#include<cmath> #include<cstdio>using namespace std;typedef long long LL;LL R;int ans=0;int gcd(int A,int B) { return !B ? A : gcd(B,A%B); }void solve(int t,int d) {int n=sqrt(t*1.0);int A,B,b;for(LL a=1;a<=n;++a){B=t-a*a; b=sqrt(B);if(b*b!=B || !B) continue;A=a*a; if(gcd(A,B)==1 && A!=B) ans++;} }int main() {scanf("%lld",&R);int n=sqrt(R*2.0);for(int d=1;d<=n;++d){if(R*2%d==0) {solve(2*R/d,d);if(d*d!=n) solve(d,2*R/d);}}ans/=2;ans=ans*4+4;printf("%d",ans); }
1041: [HAOI2008]圆上的整点
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 4640 Solved: 2092
[Submit][Status][Discuss]
Description
求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。
Input
只有一个正整数n,n<=2000 000 000
Output
整点个数
Sample Input
Sample Output
转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7931736.html
bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点相关推荐
- BZOJ1041:[HAOI2008]圆上的整点(数论)
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...
- bzoj1041 [HAOI2008]圆上的整点 gcd
这个题非常恶心,因为条件很少,要求也很少,看起来没有任何特殊的性质 所以只能往约数.gcd上靠 然后就是 x^2=r^2-y^2=(r-y)(r+y) 设A=r-y, B=r+y 由于A*B是完全平方 ...
- bzoj 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2838 Solved: 1238 [Submit][S ...
- bzoj千题计划174:bzoj1800: [Ahoi2009]fly 飞行棋
http://www.lydsy.com/JudgeOnline/problem.php?id=1800 圆上两条直径构成矩形的对角线 #include<cstdio>using name ...
- BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...
- BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...
- BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...
- bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼
http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...
- bzoj千题计划197:bzoj4247: 挂饰
http://www.lydsy.com/JudgeOnline/problem.php?id=4247 先把挂饰按挂钩数量从大到小排序 dp[i][j]前i个挂饰,剩下j个挂钩的最大喜悦值 分挂和不 ...
最新文章
- ScrollViewer滚动究竟来触发载入数据的Behavior
- linux nginx cdn,linux – Nginx Proxy_Pass到CDN与直接击中CDN. P...
- excel可视化图表插件_Axure 教程:利用图表前端插件实现高级可视化图表
- EasyGui的用法简介
- 饱和非线性(saturating nonlinearities)和非饱和非线性(non-saturating nonlinearities)的区别(转载)
- 静态成员变量及方法的调用
- python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果
- 正向代理、反向代理和透明代理的详解
- 【SpringMVC学习10】SpringMVC对RESTfull的支持
- 迎来智能数据分析的新时代
- 什么是 UCOS操作系统及特点
- 网络笔记--接入网及网络运营商
- 计算机专业就业方向与前景以及你所要具备的技能(本科生)
- 李国杰披露AMD技术转让 只能看不能吃(全文版)
- 智能车跟随圆弧路径原理
- 项目研发管理实施经验谈(1)
- Springboot 项目中使用redis 的List结构来实现缓存分页分页
- 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法
- 甲骨文2013二季报解析
- Codeforces 891E Lust 生成函数