bzoj2190】的更多相关文章

http://www.lydsy.com/JudgeOnline/problem.php?id=2190 (题目链接) 题意 一个N*N的方阵,问右下角的人能看到几个人. Solution 如果一个人(x,y)要被看到,那么当且仅当gcd(x,y)=1,否则的话,一定存在一个人(x/gcd(x,y),y/gcd(x,y))挡住了看向这个人的视线. 这样一来,求得就是1~N范围内的互质数对了,欧拉函数前缀和搞一下,*2+1即可. 细节 注意边界 代码 // bzoj2190 #include<al…
[BZOJ2190]仪仗队(数论) 题面 粘链接,题目中有图片 题解 对于题意,可以考虑 如果有\((i,j)\)能够被看见 那么,\((ki,kj)\)就一定不能看见 所以,如果一个点能够被看见,则有\(gcd(i,j)=1\) 先强制\(i>j\) 所以,对于每一个\(i\),能够有的贡献是\(φ(i)\) 所以,直接求和即可,还有\(3\)个点直接暴力加上即可 #include<iostream> #include<cstdio> #include<cstdlib…
欧拉函数phi[n]是表示1~n中与n互质的数个数. 可以用公式phi[n]=n*(1-1/p1)*(1-1/p2)*(1-1/p3)...*(1-1/pk)来表示.(p为n的质因子) 求phi[p]的过程: procedure calc(p:longint;var sum:longint); var i:longint; begin sum:=p; to trunc(sqrt(p)) do then begin sum:=sum ); do p:=p div i; // 保证每次都是质因子 e…
[bzoj2190]: [SDOI2008]仪仗队 在第i行当且仅当gcd(i,j)=1 可以被看到 欧拉函数求和 没了 /* http://www.cnblogs.com/karl07/ */ #include <cstdlib> #include <cstdio> #include <cstring> #include <cmath> #include <map> #include <algorithm> using namesp…
题意: 求1-n内互质数对个数 SOL: 裸欧拉函数,还有莫比乌斯反演的加速什么的,挖个坑. Code: /*========================================================================== # Last modified: 2016-03-16 20:57 # Filename: 2190.cpp # Description: ==================================================…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数,即C君应看到的学生人数. Sample Input 4 Sample Output 9 HINT [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 S…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数,即C君应看到的学生人数. Sample Input 4 Sample Output 9 HINT [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 不…
今天zky学长讲数论,上午水,舒爽的不行..后来下午直接while(true){懵逼:}死循全程懵逼....(可怕)Thinking Bear. 2190: [SDOI2008]仪仗队 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 2092 Solved: 1325 [Submit][Status][Discuss] Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整…
与HDU2841大同小异. 设左下角的点为(1,1),如果(1,1)->(x,y)和(1,1)->(x',y')向量平行,那只有在前面的能被看见.然后就是求x-1.y-1不互质的数对个数. 而x或y等于1可以另外讨论一下,就是当n不等于1时就有两个,n等于1就特判一下. 那么就用欧拉函数计数了:枚举x-1,累加小于x-1与x-1互质的个数,即合法的y-1的个数:结果还要*2,因为还有一半对称的y-1>x-1的情况:此外x-1=y-1多算了一次,减去1即可. #include<cst…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 简单的欧拉函数题,实际上就是求gcd(x,y)=1, 0<=x,y<=n的对数.. //STATUS:C++_AC_24MS_1584KB #include <functional> #include <algorithm> #include <iostream> //#include <ext/rope> #include <…