bzoj 2190 仪仗队 解题报告 素数筛
2017-07-04 16:08
183 查看
仪仗队
题目描述
作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。现在,C君希望你告诉他队伍整齐时能看到的学生人数。
思路
Noip级别的题目,比较简单,可以选用gcd==1或者素数筛,然后就好了。代码
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; #define N 40005 int n,ans=0; int phi ,prime ,tot; bool mark ; void getphi() { phi[1]=1; for(int i=2;i<=n;++i) { if(!mark[i]) { prime[++tot]=i; phi[i]=i-1; } for(int j=1;j<=tot;++j) { if(i*prime[j]>n) break; mark[i*prime[j]]=1; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*(prime[j]); break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } } int main() { scanf("%d",&n); getphi(); for(int i=2;i<=n-1;++i) { ans+=phi[i]; } printf("%d\n",ans*2+3); return 0; }
相关文章推荐
- codevs 1702 素数判定2 玄学?? 解题报告?
- BZOJ 2144 LCA 解题报告
- BZOJ 2190 [SDOI2008]仪仗队 ——Dirichlet积
- [BZOJ1984]月下“毛景树”解题报告|树链剖分
- BZOJ1008 /乘法原理+快速幂 解题报告
- BZOJ 1601 [Usaco2008 Oct] 最小生成树 解题报告
- BZOJ 2048 数学(调和级数) 解题报告
- BZOJ 3998 [TJOI 2015] 弦论 解题报告
- 解题报告:HDU_3988 Harry Potter and the Hide Story 大素数分解+勒让德
- 【SDOI2008】【BZOJ2190】仪仗队
- 【BZOJ 2190】【SDOI 2008】仪仗队 欧拉筛
- BZOJ 2190 仪仗队
- bzoj 3696 化合物 解题报告
- 【九度OJ】题目1163:素数 解题报告
- Hdu 5750 Dertouzos 素数筛 解题报告
- BZOJ大视野 1088: [SCOI2005]扫雷Mine 解题报告
- bzoj 2190: [SDOI2008]仪仗队
- BZOJ 2190 [SDOI2008]仪仗队 欧拉函数
- BZOJ 2882 后缀数组/最小表示法 解题报告
- 仪仗队[SDOI2008][bzoj2190]