【BZOJ2190】【codevs2296】仪仗队,数论练习之φ的线性筛
来源:互联网 发布:数据挖掘的环节包括 编辑:程序博客网 时间:2024/04/30 00:41
2190: [SDOI2008]仪仗队
Time Limit: 10 Sec Memory Limit: 259 MB
Submit: 2112 Solved: 1337
[Submit][Status][Discuss]
Description
作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。
现在,C君希望你告诉他队伍整齐时能看到的学生人数。
Input
共一个数N。
Output
共一个数,即C君应看到的学生人数。
Sample Input
4
Sample Output
9
HINT
【数据规模和约定】 对于 100% 的数据,1 ≤ N ≤ 40000
写在前面:胡写数论题只求不挂啊
思路:
代码写的非常非常丑,如果想看好的code请务必别来这里= =
代码:
#include<bits/stdc++.h>using namespace std;int minp[40010],prime[40010],phi[40010],n;//数组从左到右分别表示最小质因子,素数,φlong long ans;main(){ scanf("%d",&n); for (int i=2;i<=n;i++) { if (minp[i]==0) phi[i]=i-1, minp[i]=i, prime[++prime[0]]=i; for (int j=1;j<=prime[0];j++) { if (i*prime[j]>n) break; if (minp[prime[j]*i]!=0) minp[prime[j]*i]=min(minp[prime[j]],min(prime[j],minp[i])); else minp[prime[j]*i]=min(prime[j],minp[i]); if (i*prime[j]/minp[prime[j]*i]%minp[prime[j]*i]==0) phi[i*prime[j]]=phi[i]*prime[j]; else phi[i*prime[j]]=phi[i]*phi[prime[j]]; } } for (int i=2;i<n;i++) ans+=phi[i]; ans=ans*2+3; printf("%lld",ans); }
0 0
- 【BZOJ2190】【codevs2296】仪仗队,数论练习之φ的线性筛
- [BZOJ2190]SDOI2008仪仗队|线性筛
- BZOJ2190: [SDOI2008]仪仗队 题解 【数论】【素数筛】
- bzoj2190 仪仗队【欧拉函数+线性筛】
- 【bzoj2190】【SDOI2008】仪仗队(数论)
- 【bzoj2190】【SDOI2008】仪仗队(数论)
- CodeVS2296 仪仗队
- 【bzoj2190】[SDOI2008]仪仗队 线性筛欧拉函数
- BZOJ2190 仪仗队
- BZOJ2190仪仗队
- 【bzoj2190】【仪仗队】欧拉函数+线性筛(浅尝ACM-J)
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
- bzoj2190【线性筛】
- bzoj2190仪仗队题解
- bzoj2190[SDOI2008]仪仗队
- [BZOJ2190][SDOI2008]仪仗队
- [BZOJ2190][SDOI2008]仪仗队
- 【SDOI2008】【BZOJ2190】仪仗队
- 新浪微博之微博分享
- USACO 1.4 ariprog
- x265-1.8版本-encoder/dpb.h注释
- XML与DTD - 简单示例(咋个办呢 zgbn)
- ZOJ 3609 Modular Inverse
- 【BZOJ2190】【codevs2296】仪仗队,数论练习之φ的线性筛
- iOS - Runtime
- x265-1.8版本-encoder/frameencoder.cpp注释
- aysnctask 处理网络事件
- 【牛腩】完整版IIS配置并发布自己第一个网站
- x265-1.8版本-encoder/frameencoder.h注释
- Scrapy
- hdu 杭电 2104 hide handkerchief
- JavaScript实现动态加载其他的js文件-(咋个办呢 zgbn)