BZOJ 2190 [SDOI2008]仪仗队——欧拉函数
2017-05-03 08:10
441 查看
题目传送门
解题思路假设原点为(0,0),可以发现对于坐标(i,j),如果满足gcd(i,j)=1,这个点就肯定能看到,所以有2∗∑i=2nphi(i)个点肯定满足。然后不要忘记(0,1),(1,0),(1,1)这三个点。
#include<cstdio> using namespace std; int n,ans; int phi(int x){ int ans=x; for (int i=2;i*i<=x;i++) if (x%i==0){ ans=ans*(i-1)/i; while (x%i==0) x/=i; } if (x>1) ans=ans*(x-1)/x; return ans; } int main(){ scanf("%d",&n); for (int i=2;i<n;i++) ans+=phi(i); printf("%d\n",ans*2+3); }
相关文章推荐
- [BZOJ2190] [SDOI2008] 仪仗队 - 欧拉函数
- BZOJ 2190([SDOI2008]仪仗队-O(n)线性筛欧拉函数)
- BZOJ 2190: [SDOI2008]仪仗队 欧拉函数
- Bzoj2190:[SDOI2008]仪仗队:欧拉函数
- BZOJ-2190-仪仗队-SDOI2008-欧拉函数
- BZOJ2190 [SDOI2008]仪仗队(欧拉函数)
- BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
- BZOJ-2190-仪仗队-SDOI2008-欧拉函数
- [BZOJ2190][SDOI2008]仪仗队(欧拉函数|莫比乌斯反演)
- [BZOJ 2190][SDOI2008]仪仗队:欧拉函数
- 【bzoj2190】[SDOI2008]仪仗队 线性筛欧拉函数
- 【bzoj2190】【sdoi2008】【仪仗队】【欧拉函数】
- bzoj 2190: [SDOI2008]仪仗队 -- 欧拉函数
- bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数
- [BZOJ 2190] SDOI 2008 仪仗队 · 欧拉函数
- BZoj 2190: [SDOI2008]仪仗队【欧拉函数】
- ♥BZOJ 2190: [SDOI2008]仪仗队【欧拉函数】
- bzoj2190: [SDOI2008]仪仗队(欧拉函数)
- BZOJ 2190: [SDOI2008]仪仗队 欧拉函数
- bzoj2190 [SDOI2008]仪仗队(欧拉函数)