BZOJ1041: [HAOI2008]圆上的整点
来源:互联网 发布:网络监控测试仪 编辑:程序博客网 时间:2024/05/16 03:44
Description
求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。
Input
只有一个正整数n,n<=2000 000 000
Output
整点个数
Sample Input
4
Sample Output
4
题目传送门
这题目质量很高,%%一发出题人
从hzw学长那里抠了一张图片下来:
然后枚举每一个d和a(设它为最小值就可以了) 说实话考试的时候考这道题99.99%我不会做
代码如下(其实和hzw一模一样我都不好意思贴了):
#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;ll R;ll ans=0;ll gcd(ll a,ll b){if(a==0)return b;else return gcd(b%a,a);}bool check(ll y,double x){ if(x==floor(x)) { ll tx=floor(x); if(gcd(tx*tx,y*y)==1&&tx!=1) return 1; } return false;}int main(){ scanf("%lld",&R); for(ll d=1;d<=sqrt(2*R);d++) { if(2*R%d==0) { for(ll a=1;a<=(ll)sqrt((2*R)/(2*d));a++) { double b=sqrt(2*R/d-a*a); if(check(a,b)==true) ans++; } if(d!=(2*R)/d) { for(ll a=1;a<=(ll)sqrt(d/2);a++) { double b=sqrt(d-a*a); if(check(a,b)==true) ans++; } } } } printf("%lld\n",ans*4+4); return 0;}
by_lmy
阅读全文
0 0
- 【BZOJ1041】[HAOI2008]圆上的整点 数学
- [BZOJ1041]HAOI2008圆上的整点
- 【HAOI2008】【BZOJ1041】圆上的整点
- 【BZOJ1041】[HAOI2008]圆上的整点【数学】
- [BZOJ1041][HAOI2008]圆上的整点
- bzoj1041: [HAOI2008]圆上的整点
- [枚举] BZOJ1041: [HAOI2008]圆上的整点
- bzoj1041: [HAOI2008]圆上的整点
- bzoj1041[HAOI2008]圆上的整点
- [BZOJ1041] [HAOI2008]圆上的整点
- 【bzoj1041】[HAOI2008]圆上的整点
- bzoj1041 [HAOI2008]圆上的整点
- BZOJ1041 [HAOI2008]圆上的整点 【数学】
- bzoj1041: [HAOI2008]圆上的整点
- bzoj1041 [HAOI2008]圆上的整点 gcd
- BZOJ1041: [HAOI2008]圆上的整点
- BZoj1041 [HAOI2008]圆上的整点 数学 勾股数
- [BZOJ1041][HAOI2008][数学乱搞]圆上的整点
- 一条命令重启挂掉的docker
- VC++6.0 MFC对话框操作MySQL数据库的各种问题
- C语言笔记 指针 数组
- values资源之array和RecyclerView的使用
- tomcat8.5 managerApp 页面加载问题
- BZOJ1041: [HAOI2008]圆上的整点
- 数据结构课程设计——CET-6报名管理系统
- Expression封装
- Linux下安装snort(ubuntu为例)
- easyUI结合的moment.js
- iOS 获取模拟器上的沙盒路径
- spring事务管理默认回滚异常
- listview的再次使用(两个集合中的数据集中显示并使用framelayout布局表示系统应用与非系统应用)
- 随便乱扯:关于IT与风投