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

4

Sample Output

4

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7931736.html

bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点相关推荐

  1. BZOJ1041:[HAOI2008]圆上的整点(数论)

    Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...

  2. bzoj1041 [HAOI2008]圆上的整点 gcd

    这个题非常恶心,因为条件很少,要求也很少,看起来没有任何特殊的性质 所以只能往约数.gcd上靠 然后就是 x^2=r^2-y^2=(r-y)(r+y) 设A=r-y, B=r+y 由于A*B是完全平方 ...

  3. bzoj 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2838  Solved: 1238 [Submit][S ...

  4. bzoj千题计划174:bzoj1800: [Ahoi2009]fly 飞行棋

    http://www.lydsy.com/JudgeOnline/problem.php?id=1800 圆上两条直径构成矩形的对角线 #include<cstdio>using name ...

  5. BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...

  6. BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...

  7. BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...

  8. bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼

    http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...

  9. bzoj千题计划197:bzoj4247: 挂饰

    http://www.lydsy.com/JudgeOnline/problem.php?id=4247 先把挂饰按挂钩数量从大到小排序 dp[i][j]前i个挂饰,剩下j个挂钩的最大喜悦值 分挂和不 ...

最新文章

  1. ScrollViewer滚动究竟来触发载入数据的Behavior
  2. linux nginx cdn,linux – Nginx Proxy_Pass到CDN与直接击中CDN. P...
  3. excel可视化图表插件_Axure 教程:利用图表前端插件实现高级可视化图表
  4. EasyGui的用法简介
  5. 饱和非线性(saturating nonlinearities)和非饱和非线性(non-saturating nonlinearities)的区别(转载)
  6. 静态成员变量及方法的调用
  7. python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果
  8. 正向代理、反向代理和透明代理的详解
  9. 【SpringMVC学习10】SpringMVC对RESTfull的支持
  10. 迎来智能数据分析的新时代
  11. 什么是 UCOS操作系统及特点
  12. 网络笔记--接入网及网络运营商
  13. 计算机专业就业方向与前景以及你所要具备的技能(本科生)
  14. 李国杰披露AMD技术转让 只能看不能吃(全文版)
  15. 智能车跟随圆弧路径原理
  16. 项目研发管理实施经验谈(1)
  17. Springboot 项目中使用redis 的List结构来实现缓存分页分页
  18. 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法
  19. 甲骨文2013二季报解析
  20. Codeforces 891E Lust 生成函数

热门文章

  1. L1-004. 计算摄氏温度-PAT团体程序设计天梯赛GPLT
  2. 性能监控的好工具 - NewRelic 简介
  3. 第五章 处理器拦截器详解
  4. (亲测可行)vivo设备一键激活xposed框架方法
  5. HDU-3466-Proud Merchants
  6. Endless Spin
  7. UE4中Component和Subobject的区别
  8. Java引用类型分析
  9. CentOS6.4 xen4.2 虚拟机 桥接网络设置
  10. 关于RAID与SCSI的一些基本概念(一)