http://www.lydsy.com:808/JudgeOnline/problem.php?id=1041

所谓的神题,我不会,直接题解。。看了半天看懂题解了。详见hzwer博客

这题呢,我只能吸收些思想,即,当我们要找合法解的时候,我们可以深究它的性质,然后用性质来判定是否存在合法解。

此神题直接看题解打码。

#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
#define rep(i, n) for(int i=0; i<(n); ++i)
#define for1(i,a,n) for(int i=(a);i<=(n);++i)
#define for2(i,a,n) for(int i=(a);i<(n);++i)
#define for3(i,a,n) for(int i=(a);i>=(n);--i)
#define for4(i,a,n) for(int i=(a);i>(n);--i)
#define CC(i,a) memset(i,a,sizeof(i))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define read(a) a=getnum()
#define print(a) printf("%d", a)
#define debug(a) printf("%lld\n", a)
inline int getnum() { int ret=0; char c; for(c=getchar(); c<'0' || c>'9'; c=getchar()); for(; c>='0' && c<='9'; c=getchar()) ret=ret*10+c-'0'; return ret; }
typedef long long ll;
ll gcd(ll a, ll b) { return b?gcd(b, a%b):a; } inline bool check(ll A, ll B) {
if(((ll)sqrt(B)*(ll)sqrt(B))==B && A!=B)
if(gcd(A, B)==1) return true;
return false;
} int main() {
int ans=0;
ll d, d2, r, r2;
scanf("%lld", &r);
r2=r<<1;
ll m=sqrt(r2);
ll a;
for(d=1; d<=m; ++d) {
if(!(r2%d)) {
d2=d<<1;
for(a=1; a<=(ll)sqrt(r2/d2); ++a)
if(check(a*a, r2/d-a*a)) ++ans;
if(d!=r2/d) {
for(a=1; a<=(ll)sqrt(d/2); ++a)
if(check(a*a, d-a*a)) ++ans;
}
}
}
printf("%lld\n", (ll)(ans*4+4));
return 0;
}

Description

求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。

Input

r

Output

整点个数

Sample Input

4

Sample Output

4

HINT

n<=2000 000 000

Source

【BZOJ】1041: [HAOI2008]圆上的整点(几何)的更多相关文章

  1. BZOJ 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3621  Solved: 1605[Submit][Sta ...

  2. bzoj 1041: [HAOI2008]圆上的整点 数学

    1041: [HAOI2008]圆上的整点 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  3. bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 853[Submit][Stat ...

  4. BZOJ 1041: [HAOI2008]圆上的整点【数论,解方程】

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4210  Solved: 1908[Submit][Sta ...

  5. BZOJ 1041 [HAOI2008]圆上的整点:数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^ ...

  6. BZOJ 1041 [HAOI2008]圆上的整点:数学【费马平方和定理】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^ ...

  7. BZOJ(2) 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4966  Solved: 2258[Submit][Sta ...

  8. 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4298  Solved: 1944[Submit][Sta ...

  9. 1041: [HAOI2008]圆上的整点 - BZOJ

    Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数.Input rOutput 整点个数Sample Input4Sample Output4HINT n ...

随机推荐

  1. HLG1744组合数学问题与lucas定理运用

    The figure below shows Pascal's Triangle: Baby H divides Pascal's Triangle into some Diagonals, like ...

  2. linux 回收站的添加

    在~下     .bashrc或者.bash_profile加入 mkdir -p ~/.trash     alias rm=trash       trash()     {      mv $@ ...

  3. [flag飞起]

    重度Flag: Rush 未来程序・改 (note: 由于代码存放地址原因(物理)无法本周完成) 轻度Flag: 未来程序・改写完后刷QTREE与主席树 严重Flag: 计算几何...

  4. webservice远程调试开启

    在.NET 中已经默认将WEBSERVICE的远程调试功能关闭,有的时候我们需要远程调试程序的时候,就需要打开此功能我们只需在WEBSERVICE的项目的中添web.config的<system ...

  5. Maximum Gap

    Given an unsorted array, find the maximum difference between the successive elements in its sorted f ...

  6. 把.pvr.ccz文件转换成png

    我用的是一个万能转换法,原理是先用CCSprite加载.pvr.ccz,然后把它绘制到一个CCRenderTexture上,然后再保存到文件里.这方法其实不只.pvr.ccz文件,其他所有能被coco ...

  7. Android 中“TabBar”的背景拉伸问题

    在最近的一个工程中,要求有一个在上方了tabbar,上面有并排的3个方形按钮,每个按钮都有背景图.问题来了,如何让图片在不同尺寸的屏幕上不失真呢?(由于我们的项目比较小,工时很短,不能为每一个屏幕尺寸 ...

  8. iOS 如何使用自定义字体

    首先,你需要有字体文件,比如 xxx.otf,之后你需要到工程的info配置文件中加入Fonts provided by application的值,如下图 之后,就可以使用字体名和UIFont的方法 ...

  9. Java for LeetCode 147 Insertion Sort List

    Sort a linked list using insertion sort. 解题思路: 插入排序,JAVA实现如下: public ListNode insertionSortList(List ...

  10. ava.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (解决思路)

    当我们在启动tomcat服务的时候报错信息:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bin 分析:从错 ...