Codeforces Round #304 (Div. 2) 546D Soldier and Number Game 质因子个数
来源:互联网 发布:php访客统计 编辑:程序博客网 时间:2024/05/13 06:56
题意:两个军人玩游戏,第一个军人把一个数n交给第二个军人,第二个军人把n用x整除n,然后把n/x交给第一个军人。n=1时结束。问最大的回合数
思路:就等于求一个数的质因子个数,比如说4,就是 2*2 质因子个数就是2
num[i]就相当于dp
num[i]就是i的质因子个数,然后统计的时候num[i]=num[i/maxPrime[i]]+1
因为+1就是加我们除的那个质数,因为我们除的是质数,所以并不会浪费次数
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<math.h>#include<queue>#include<stack>#include<string>#include<vector>#include<map>#include<set>using namespace std;typedef long long LL;#define maxn 5000005#define f(x) (x*1.0)#define inf 0x3f3f3f3f#define maxm maxn*maxn#define lowbit(x) (x&(-x))#define cheak(i) printf("%d ",i)#define lson(x) (splay[x].son[0])#define rson(x) (splay[x].son[1])#define rfor(i,a,b) for(i=a;i<=b;++i)#define lfor(i,a,b) for(i=a;i>=b;--i)#define mem(a,b) memset(a,b,sizeof(a))#define mec(a,b) memcpy(a,b,sizeof(b))const double PAI=acos(-1.0);int maxPrime[maxn],num[maxn];LL sum[maxn];void init(){ int i,j; mem(maxPrime,-1); rfor(i,2,maxn-1) { if(~maxPrime[i]) continue; for(j=i;j<maxn;j+=i) maxPrime[j]=i; } num[1]=0; rfor(i,2,maxn-1) if(maxPrime[i]!=-1) num[i]=num[i/maxPrime[i]]+1; sum[1]=num[1]; rfor(i,2,maxn-1) sum[i]=sum[i-1]+num[i];}int main(){ int T,a,b; init(); scanf("%d",&T); while(T--) { scanf("%d%d",&a,&b); printf("%lld\n",sum[a]-sum[b]); } return 0;}
0 0
- Codeforces Round #304 (Div. 2) 546D Soldier and Number Game 质因子个数
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game
- Codeforces Round #304 (Div. 2) D Soldier and Number Game
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game
- Codeforces Round #304 (Div. 2) D - Soldier and Number Game
- Codeforces Round #304 (Div. 2)D. Soldier and Number Game
- Codeforces Round #304 (Div. 2)-D. Soldier and Number Game,素因子打表,超时哭晕~~
- codeforces-546D-Soldier and Number Game【思维】(求质因子个数)
- D-Soldier and Number Game(CF546D) Codeforces Round #304 (Div. 2)
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game 数论 筛表法
- Codeforces Round #304 (Div. 2) D. Soldier and Number Game (打表)
- Codeforces#304-D - Soldier and Number Game-求因子个数/数学
- Codeforces 546D. Soldier and Number Game(找所有数质因子数量)
- Codeforces-546D Soldier and Number Game 【质因子分解+打表+DP】
- CodeForces 546D Soldier and Number Game
- CodeForces-546D Soldier and Number Game
- Codeforces 546D Soldier and Number Game
- CodeForces-546D.Soldier and Number Game
- What is EJB
- [Vala+Gtk3.0]Fixed固定布局基本模板
- 不同浏览器获取DOM元素的各种高度
- linux下文本读写:面向二进制字节流方式
- 多下标哈希表——Fast Exact Search in Hamming Space with Multi-Index Hashing
- Codeforces Round #304 (Div. 2) 546D Soldier and Number Game 质因子个数
- C#WinForm打开文件夹并选中文件
- Jquery实现图片播放
- Codeforces Round #304 (Div. 2) 546 E - Soldier and Traveling 最大流
- Codeforces Round #305 (Div. 2) 548C - Mike and Frog 循环节
- Hadoop链式MapReduce、多维排序、倒排索引、自连接算法、二次排序、Join性能优化、处理员工信息Join实战、URL流量分析、TopN及其排序、求平均值和最大最小值、数据清洗ETL、分析气
- C/C++中的数据存储方式
- 4264: 小C找朋友 hash
- 不好意思