2190: [SDOI2008]仪仗队】的更多相关文章

2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2689  Solved: 1713[Submit][Status][Discuss] Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数.…
假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 = ∑phi(i) * 2 + 1 ( 1 <= i < n ). +2是因为(1, 0), (0, 1) 两个点, -1是因为(1, 1)重复计算了 -------------------------------------------------------------------------…
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MB[Submit][Status][Discuss] Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数,…
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 3235  Solved: 2089 Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2190 [题意] n*n的正方形,在(0,0)格点可以看到的格子数目. [思路] 预处理出欧拉函数. (x,y)=1,1<=y<=n,x<y的数对为t=sigma{ phi(i) } 1<=i<=n,则答案为2*t+1. 当然也可以用莫比乌斯反演求,懒得写了 (〜 ̄△ ̄)〜 [代码] #include<cmath> #include<cstdio&…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).    现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数,即C君应看到的学生人数. Sample Input 4 Sample Output 9 HINT [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 -…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 其实就是在数一个n*n的网格可以数出多少条线,然后就是y=kx, 如果在同一条线上一定满足 y*a=k(x*a), 则这里的gcd(y,x)=1,通过观察的在这个红色三角形内可以发现每一个y值对应着小于它的x 则就是一个欧拉函数…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N. Output 共一个数,即C君应看到的学生人数. Sample Input 4 Sample Output 9 HINT [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 Solu…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 分析:就是要线性筛出欧拉函数... 直接贴代码了: memset(ans,,sizeof(ans)); ans[]=; ;i<=n;++i) if(!ans[i]) for(int j=i;j<=n;j+=i) { if(!ans[j]) ans[j]=j; ans[j]=ans[j]/i*(i-); }…
[算法]欧拉函数 欧拉线性筛 [题解]将图从左至右,从下至上,分别标号0~n-1. 除了坐标0,一个点会被观察到当且仅当其坐标(i,j)的i与j互质,否则会被(i/d,j/d)挡住. 所以累加2~n-1的欧拉函数,再在处理左下角三个点即可. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ; int n,phi[maxn],prime[maxn]; bool mark…