Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 Solution 一个有趣的视频 Code #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #define LL l…
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=根号…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4631  Solved: 2087 [Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 最容易想到的就是直接…
题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入 只有一个正整数n,n<=2000 000 000 输出 整点个数 样例输入 4 样例输出 4 题解 数论 #include <cmath> #include <cstdio> typedef long long ll; ll judge(ll k) { ll t = (ll)sqrt(k); return t * t == k ? t : 0; } ll gcd(ll a , ll b…
求x2+y2=r2的整数解个数,显然要化化式子.考虑求正整数解. y2=r2-x2→y2=(r-x)(r+x)→(r-x)(r+x)为完全平方数→(r-x)(r+x)/d2为完全平方数,d=gcd(r-x,r+x)→(r-x)/d·(r+x)/d为完全平方数,gcd((r-x)/d,(r+x)/d)=1→(r-x)/d和(r+x)/d均为完全平方数→(r-x)/d+(r+x)/d=2r/d为整数,即d|2r 于是我们可以以√n的复杂度枚举d,然后枚举√(r-x)/d,检验一下是否满足之前推导中的…
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 HINT Source Solution 网上有一个很好的证明 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll gcd(ll a, ll b) { r…
我能想得出怎么做才奇怪好吗 题解:http://blog.csdn.net/csyzcyj/article/details/10044629 #include<iostream> #include<cstdio> #include<cmath> #define ll long long using namespace std; ll read() { ll x=,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar…
[BZOJ1041][HAOI2008]圆上的整点 题面 bzoj 洛谷 题解 不妨设\(x>0,y>0\) \[ x^2+y^2=r^2\\ y^2=(x+r)(x-r) \] 设\(r-x=ud,r+x=vd,(u,v)=1\) \[ y^2=d^2uv \] \(u,v\)一定为完全平方数 则\(u=s^2,v=t^2\)且必有\((s,t)=1\) \[ 2r=(u+v)d=(s^2+t^2)d\\ \Rightarrow\\ x=\frac{t^2-s^2}{2}d\\ y=dst\…
[BZOJ1041]圆上的整点(数论) 题面 BZOJ 洛谷 题解 好神仙的题目啊. 安利一个视频,大概是第\(7\)到\(19\)分钟的样子 因为要质因数分解,所以复习了一下\(Pollard\_rho\) #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #inclu…
2021.12.06 P2508 [HAOI2008]圆上的整点(数论+ \(\pi\) ) https://www.luogu.com.cn/problem/P2508 题意: 求一个给定的圆 \((x^2+y^2=R^2)\) ,在圆周上有多少个点的坐标是整数. 分析: 第一步,咱把圆以横竖坐标轴为分界线分成四份儿,算出一份的整点坐标数*4就是结果. 恭喜你,40分到手. 第二步,先画一个 \(R=5\) 的圆,只关注第一象限,这里有四个整点坐标,分别为 \((0,5)\) , \((3,4…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4210  Solved: 1908[Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 HINT 科普视频 So…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3621  Solved: 1605[Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 HINT   Sourc…
1041: [HAOI2008]圆上的整点 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1041 Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input r Output 整点个数 Sample Input 4 Sample Output 4 HINT n<=2000 000 000 题意 题解: h…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 853[Submit][Status] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input r Output 整点个数 Sample Input 4 Sample Output 4 HINT n<=2000 000 000 Source 這道題可用本原勾股數組解,由於本原…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4298  Solved: 1944[Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 HINT 科普视频 /*…
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4966  Solved: 2258[Submit][Status][Discuss] Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 HINT 科普视频 So…
题面 给定圆的半径,求圆上整点数 这是一道很Nice的数学题!超爱!好吧,由于这道题,我去Study了一下复数(complex number)复杂的数 真棒!!! 有兴趣的戳这里!!!\(\huge \to\) 思路: 高斯素数的原理,将整数分解质因数后,再把每个质因数分解成高斯素数,对于质数4n+1,它可以有效的分解成高斯素数,而质数4n+3不能,因为3无法分解为高斯素数,所以当一个数有奇数个3因子时,这个圆上没有整点,而3的个数为偶数时,由于能分成两组配对,所以有整点,但3对Ans的影响为0…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^2的圆周上,有多少个坐标为整数的点. 题解: 科普视频:http://www.bilibili.com/video/av12131743/ 推导的大致思路: 推导: 一.17 = 4^2 + 1^2 求圆周上有多少个点,就是求有多少个整数对(a,b)满足a^2 + b^2 = R^2. 二.17 = (4…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^2的圆周上,有多少个坐标为整数的点. 题解: 科普视频:http://www.bilibili.com/video/av12131743/ 推导的大致思路: 推导: 一.17 = 4^2 + 1^2 求圆周上有多少个点,就是求有多少个整数对(a,b)满足a^2 + b^2 = R^2. 二.17 = (4…
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Sample Input 4 Sample Output 4 想法 嗯哼,一道数学题. 开始推柿子. 首先我们只需求出满足 $ x^2 + y^2 = z^2 $ 的正整数对数即可,乘以4后再加4便为答案 \[ x^2+y^2=z^2 \\ y^2=z^2-x^2=(z+x)(z-x) \\ 设\quad d=g…
题目的所求可以转化为: \(y^2=r^2-x^2\)(其中r,x,y均为整数) 即\(y^2=(r-x)(r+x)\)(其中\(r,x,y\)均为整数) 不妨设\((r-x)=d*u\)-------① \((r+x)=d*v\)-------②(其中\(gcd(u,v)=1\)) 则有\(y^2=d^2*u*v\),因为\(u,v\)互质所以\(u,v\)一定是完全平方数,所以再设\(u=s^2,v=t^2\) 则有\(y^2=d^2*s^2*v^2\),即\(y=d*s*v\) ②-①得\…
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1041 所谓的神题,我不会,直接题解..看了半天看懂题解了.详见hzwer博客 这题呢,我只能吸收些思想,即,当我们要找合法解的时候,我们可以深究它的性质,然后用性质来判定是否存在合法解. 此神题直接看题解打码. #include <cstdio> #include <cstring> #include <string> #include <iostream&…
题意 给定一个圆\(x^2+y^2=z^2\),求圆周上有多少个点的坐标是整数. \(r\leq 2*10^9\) 分析 这道题目关键要知道一些勾股数的性质,剩下的就很好处理了. 勾股数的性质 参考:勾股数的基本组及其性质 定义1 如果正整数\(a\),\(b\),\(c\)能满足不定方程\(a^2+b^2=c^2\),则它们叫一组勾股数,用\([a,b,c]\)表示. 定义2 如果\([a,b,c]\)为一勾股数组,且\((a,b)=1\),则\([a,b,c]\)叫一个勾股数的基本组:全体勾…
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数.Input rOutput 整点个数Sample Input4Sample Output4HINT n<=2000 000 000 不会做,膜拜神犇的题解 var r:int64; ans,d:longint; function gcd(a,b:int64):int64; var t:int64; begin do begin t:=a mod b; a:=b; b:=t; end; exit(a)…
题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入输出格式 输入格式: r 输出格式: 整点个数 输入输出样例 输入样例#1: 4 输出样例#1: 4 说明 n<=2000 000 000 接下来枚举d,a 为什么要除d? 因为他们不互质,a*b是完全平方数≠a,b都是完全平方数 记住还要a*a,b*b互质 #include<iostream> #include<cstdio> #include<cstring> #incl…
这个题一开始看着没什么思路,但是一看题解就明白了不少,主要是数学证明,代码很好写. 贴个网址: hzwer 题干: 题目描述 求一个给定的圆(x^+y^=r^),在圆周上有多少个点的坐标是整数. 输入格式 只有一个正整数n,n<= 输出格式 整点个数 样例输入 样例输出 代码: #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespac…
题目描述 求一个给定的圆$ (x^2+y^2=r^2) $,在圆周上有多少个点的坐标是整数. 输入格式 \(r\) 输出格式 整点个数 输入输出样例 输入 4 输出 4 说明/提示 \(n\le 2000 000 000\) 思路 题目的所求可以转化为 问题的所求可以转化为\(y^{2}=r^2-x^2\)(其中\(x,y,r\)均为正整数). 即\(y^2=(r-x)(r+x)\)(其中\(r,x,y\)均为正整数) 不妨设\((r-x)=d\times u------① (r+x)=d\ti…
题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入输出格式 输入格式: r 输出格式: 整点个数 输入输出样例 输入样例#1: 复制 4 输出样例#1: 复制 4 说明 n<=2000 000 000 /* 处理筛法: 筛素数筛到r<=2e9的话显然数组开不下 显然一个数有<=1个大于它的sqrt的素因子 所以我们筛小于等于sqrt(r)的范围内的素数 然后用筛出来的素数将n质因数分解后可能r!=1 这个时候的n就是n的那个大于sqrt(r)的素因…
题目大意 给出\(r\),求圆\(x^2+y^2=r^2\)上坐标均为整数的点数.\(n<=2,000,000,000\) 总体思路 我们看到这个数据大小,还是个数学题,想到这个的时间复杂度应当为\(O(\sqrt{r})\).要达到这个效果,我们先要把\(r^2\)转化成\(r\),然后在\(\sqrt{r}\)的范围内枚举某个数.对于我们以前的经验,这枚举的"某个数"有:质因数分解.求因数等.这个题目好像跟质数的关系不大!那就是枚举因数喽! 以上的叙述就为我们以后的数学推导提…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 ${x^{2}+y^{2}=r^{2} }$ ${\Rightarrow y^{2}=(r-x)(r+x)}$ 令${d=gcd(r-x,r+x)}$ 则${y^{2}=d^{2}*\frac{r+x}{d}*\frac{r-x}{d}}$ 再令${A=\frac{r+x}{d}}$,${B=\frac{r-x}{d}}$ 则${y^{2}=d^{2}*A*B}$ 考虑${y^{2…