BZOJ 1041 数学】的更多相关文章

原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1041 我们只需要求第一象限内(不包括坐标轴)的点数然后ans=ans*4+4就好了 首先我们知道圆上点的方程关系 x*x+y*y=r*r 那么我们变下型 Y*Y=R*R-X*X Y*Y=(R-X)*(R+X)        ① 我们令d=gcd(r-x,r+x) 设A=(r-x)/d; B=(r+x)/d; 因为我们要求x为整数,那么需要A,B为整数 将A,B带回①可得 A*B*d*d=…
思路: $x^2+y^2=r^2$$y=\sqrt{(r+x)(r-x)}$令$ d=gcd(r+x,r-x)$设A=$(r-x)/d$ $B=(r+x)/d$则$gcd(A,B)=1$$y^2=d^2*A*B$∵$d.y$为完全平方数.$gcd(A,B)=1$.且$A!=B$(在坐标轴上的最后算)∴$A.B$为完全平方数设$a^2=(r+x)/d b^2=(r-x)/d$则$a^2+b^2=2r/d$即d是2r的约数那我们就$1到\sqrt{2r}$枚举约数再枚举a (从$\sqrt{r/d}…
bzoj 5334 数学计算 开始想直接模拟过程做,但模数 \(M\) 不一定为质数,若没有逆元就 \(fAKe\) 掉了. 注意到操作 \(2\) 是删除对应的操作 \(1\) ,相当于只有 \(1\) 操作,但每个操作有一个生效的时限. 将所有操作离线下来,用一颗线段树维护每个时间的答案.对于操作 \(1\) ,预处理出生效的时限后,区间修改那一段即可.注意有没有删除的情况,右端点设为 \(Q\) . 预处理结束后,对每个操作可以一边改一边做,后面的操作显然不会对这里的答案造成影响. 时间复…
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…
题目链接: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…
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1041 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 思路: 看视频: https://www.bilibili.com/video/av12131743/ http://blog.sina.com.cn/s/blog_a661ecd50101cv41.html 思路: 对于半径的平方进行质因数分解为p1q1p2q2...pnqn,ans = 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…
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…
这里先只考虑x,y都大于0的情况 如果x^2+y^2=r^2,则(r-x)(r+x)=y*y 令d=gcd(r-x,r+x),r-x=d*u^2,r+x=d*v^2,显然有gcd(u,v)=1且u<v 有2r=d*(u^2+v^2),y=d*u*v,x=d(v^2-u^2)/2 枚举2r的约数d,再花费sqrt(2r/d)的时间枚举u,求出v=sqrt(2r/d-u^2)然后判断gcd(u,v)=1 最后结果乘以4(四个象限)+4(坐标轴上)即可 /***********************…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1041 题意:求圆x^2+y^2=r^2上的整点. 思路:由于对称性,我们只需要计算第一象限的即可. 因此,我们首先枚举2r的约数d,令R=r/d,枚举u,v,使得u^2+v^2=R且(u,v)=1即可. i64 n; i64 Gcd(i64 x,i64 y){    return !y?x:Gcd(y,x%y);} i64 cal(i64 n){    i64 i,j,ans=0; …
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 這道題可用本原勾股數組解,由於本原…
4173: 数学 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 462  Solved: 227[Submit][Status][Discuss] Description Input 输入文件的第一行输入两个正整数 . Output 如题 Sample Input 5 6 Sample Output 240 HINT N,M<=10^15 Source   [Submit][Status][Discuss] 据说单个欧拉函数$phi(N)$可以在…
5334: [Tjoi2018]数学计算 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 220  Solved: 147[Submit][Status][Discuss] Description 小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型:  1 m: x = x  *  m ,输出 x%mod; 2 pos: x = x /  第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次)…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 分析:实质上是求(a,b,c)勾股数的个数,其中c是确定的. 对于勾股数有一组通式: a=m^2-n^2 b=2mn c=m^2+n^2 对于上面3个式子有3个约束: ①gcd(a,b,c)=1 ②gcd(m,n)=1 ③m,n奇偶不同 (充分性很好证,必要性的话百度百科说的很详细) 下面说说对三个约束的理解: ①讨论的是互质的勾股数,因为不是互质的可以先约分成不互质的,没有讨论意义(…
挖一发坑...一碰到数学题头晕眼花...看着证明感觉我幼儿园还没毕业... http://www.cnblogs.com/zhuohan123/p/3726933.html 等我会完完整整地写一发latex的时候一定要补一发pdf的题解.…
题目描述 给出\(n\),求\(x^2+y^2=n^2,x,y,z\in \mathbb{Z}\)的解数. 复杂度 \(O\left(T_{\mathtt{factorization}}(n)\right)\).在解答中使用Pollard \(\rho\)算法,复杂度\(O\left( n^{1/4}\right)\). 题解 见 潘承洞.潘承彪 <初等数论>第三版 第287页的结论,可简单推出 对于\(n\)的一个形如\(4n+1\)的素因子\(p\),对答案的贡献是\(2c+1\),其中\…
找规律后可以之后答案就是 k^(m-1)*(n-(m-1)*k)+(m+(m-1)*k+1)*k^(m-1) div 2 /**************************************************************     Problem:     User: BLADEVIL     Language: Pascal     Result: Accepted     Time: ms     Memory: kb ***********************…
和1045一模一样,找到这道题的时候还愣了下神,最后发现样例都是 一样的,直接粘了1045的代码,具体题解看 http://www.cnblogs.com/BLADEVIL/p/3468729.html /**************************************************************     Problem:     User: BLADEVIL     Language: Pascal     Result: Accepted     Time:…
首先对于答案 ΣΣ(n mod i)*(m mod j) i<>j 也就是Σ(n mod i)Σ(m mod j)-Σ(n mod i)(m mod i) 将mod展开,我们可以得到有floor的式子,对于这种式子,我们可以 利用分段的思想,将O(N)的简化为sqrt(n)的 /************************************************************** Problem: User: BLADEVIL Language: Pascal Resul…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2326 题意:定义Concatenate(1,N)=1234567……n.比如Concatenate(1,10)=12345678910.给定n和m,求Concatenate(1,n)%m. 思路:令f[n]表示Concatenate(1,n).那么有: f[i]=f[i-1]*10+(i-1)+1   1<=i<=9 f[i]=f[i-1]*100+(i-1)+1  10<=i…
我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那 两个线段所在的直线如图中左 那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每 加一对儿就多两条线段,一共要加k对儿,所以答案是2*k,由于图是对称的,就是 这张图从上往下看和从下网上看是对称的,所以上面第k个是下面第n-k+1个,所以 比较下这两个大小,k取min然后输出2*k就行了 /********************************************************…
实际上,对于位数相同的连续段,可以用矩阵快速幂求出最后的ans,那么题目中一共只有18个连续段. 分段矩阵快速幂即可. #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> #include<cmath> #define ll long long using na…
首先我们可以发现每张牌的对应关系,假设序号为x的牌,经过一次洗牌后的位置为: 2*x     x<=n/2 2*(x-n/2)-1 x>n/2 那么我们可以将下面的式子化简,变成2*x-n-1,其实这个就是2*x%(n+1),那么经过m次变换,x的位置为2^m*x%(n+1),设最后的答案为x,那么我们可以列出式子 2^m*x%(n+1)=l,拓展欧几里得做就行了. /**************************************************************…
在1-n所有数中,i一共可以成为n/i个数的约数,也即所有的约数中有n/i个i,所以扫一遍累加答案就好了. /**************************************************************     Problem: 1968     User: BLADEVIL     Language: C++     Result: Accepted     Time:32 ms     Memory:804 kb ***********************…
首先我们假设两个点(i,j),(i,k)向中间移动一格,且k>j+1,那么我们可以获得的价值为k-j,这样,我们定义每个点的每个星的能量为a[(i,j)]=i*i+j*j,这样这两个点开始的能量为i*i+j*j+i*i+k*k,移动之后,两个点变为(i,j+1),(i,k-1),这时的能量为i*i+(j+1)*(j+1)+i*i+(k-1),这时的能量差为2*k-2*j,为获得价值的2倍,因为对于所有的价值获得都可以采用这样的方法,所以我们可以算出开始局面的能量和,结束局面的能量和,相减>&g…
首先因为N很大,我们几乎不能筛任何东西 那么考虑设s(p)为 gcd(i,n)=p 的个数,显然p|n的时候才有意义 因为i与n的gcd肯定是n的因数,所以那么可得ans=Σ(p*s(p)) 那么对于s(p),我们有gcd(i,n)=p即gcd(i/p,n/p)=1,也即phi(n/p) 所以枚举因数求phi就好了 /**************************************************************     Problem:     User: BLAD…
思路: 一开始以为是真·欧几里德 a,b来回消 (其实用不了那么麻烦) 我们发现 这是一个矩形 求一下整点数 完了.. 要特判 p=q的情况 //By SiriusRen #include <cstdio> long long p,q; int main(){ scanf("%lld%lld",&p,&q); printf()*(q-)/+(p==q)*(q-)/); }…
题目内容 小豆现在有一个数\(x\),初始值为\(1\).小豆有\(Q\)次操作,操作有两种类型: 1 m:\(x=x×m\),输出\(x\ mod\ M\): 2 pos:\(x=x/\)第\(pos\)次操作所乘的数(保证第\(pos\)次操作一定为类型\(1\),对于每一个类型\(1\)的操作至多会被除一次),输出\(x\ mod\ M\). 输入格式 一共有\(t\)组输入. 对于每一组输入,第一行是两个数字 \(Q,M\). 接下来\(Q\)行,每一行为操作类型\(op\),操作编号或…
数学 orz hzwer 完全不会做…… 很纠结啊,如果将来再遇到这种题,还是很难下手啊…… 引用题解: [分析]: 样例图示: 首先,最暴力的算法显而易见:枚举x轴上的每个点,带入圆的方程,检查是否算出的值是否为整点,这样的枚举量为2*N,显然过不了全点. 然后想数学方法. 有了上面的推理,那么实现的方法为: 枚举d∈[1,sqrt(2R)],然后根据上述推理可知:必先判d是否为2R的一约数. 此时d为2R的约数有两种情况:d=d或d=2R/d. 第一种情况:d=2R/d.枚举a∈[1,sqr…