hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317
题意:F(x) 表示x的不同质因子的个数结果是求L,R区间中最大的gcd( F(i) , F(j) ),i、j在L,R区间内。
思路:因为2<=L < R<=1000000,所以他们的质因子最多的个数也就7个,也就是说1<=F(x)<=7,因为要求最大的GCD,所以只要知道在L,R区间内每个F(x)的情况就可以知道结果。
代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 const int X=1000010; 8 bool isPrime[X+1]; 9 int total;//计数 10 int prime[79000]; 11 void getPrime() 12 { 13 total=0; 14 memset(isPrime,true,sizeof(isPrime)); 15 memset(prime,0,sizeof(prime)); 16 for(int i=2;i<=X;i++) 17 { 18 if(isPrime[i]) prime[total++]=i; 19 for(int j=0; j<total && i*prime[j]<=X; j++) 20 { 21 isPrime[i*prime[j]]=false; 22 if(i%prime[j]==0) 23 break; 24 } 25 } 26 } 27 28 int dp[X][9]; 29 int num[X]; 30 void getCot() 31 { 32 memset(num,0,sizeof(num)); 33 for(int i=0;prime[i]<=1000000;i++) 34 for(int j=prime[i];j<=1000000;j+=prime[i]) 35 num[j]++; 36 } 37 38 void gao() 39 { 40 memset(dp,0,sizeof(dp)); 41 dp[2][1]=1; 42 for(int i=3;i<=1000000;i++) 43 { 44 int ans=num[i]; 45 for(int j=1;j<=7;j++) 46 dp[i][j]=dp[i-1][j]; 47 dp[i][ans]++; 48 } 49 } 50 int main() 51 { 52 int T,l,r,aa[10],ma; 53 getPrime(); 54 getCot(); 55 gao(); 56 scanf("%d",&T); 57 while(T--) 58 { 59 ma=1; 60 scanf("%d%d",&l,&r); 61 for(int i=1;i<=7;i++) 62 { 63 aa[i]=dp[r][i]-dp[l-1][i]; 64 if(aa[i]>=2&&i>ma) 65 ma=i; 66 } 67 if(aa[6]>0&&aa[3]>0) 68 ma=max(ma,3); 69 else if(aa[6]>0&&aa[2]>0||aa[4]>0&&aa[2]>0) 70 ma=max(ma,2); 71 printf("%d\n",ma); 72 } 73 return 0; 74 }
View Code
转载于:https://www.cnblogs.com/yjx-xx/p/4690556.html
hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)相关推荐
- 2015 多校第三场
1002 求max(f(a),f(b)), f为不重复的素因子个数, 在数据要求以内 , 每个数最多有7个,可以打表. 1 /*Author :usedrose */ 2 /*Created Time ...
- [洛谷多校第三场] T176282 Mana Eel‘s Problem [分段前缀积]
T176282 Mana Eel's Problem 题意 给定数列an,xa_n,xan,x,询问 ∏lr(μ(ai)+ai+x)(mod998244353)\prod\limits _l^r(\ ...
- 24dian(牛客多校第三场)
24dian(牛客多校第三场) 题意: 给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以 ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- 2019.7.29 杭电多校第三场小结
index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara's deep sea (51/150)34.00% 6604 Blow up the city (213/ ...
- 牛客多校第三场 B【Classical String Problem】
牛客多校第三场 B[Classical String Problem] 链接:https://ac.nowcoder.com/acm/contest/5668/B 来源:牛客网 题目描述 Given ...
- 杭电多校第六场个人补题6 7 9 10 12
杭电多校第六场个人补题6 7 9 10 12 6 题意 给定一棵有n结点的树,点权为1~n,求对所有结点子树的mex操作和的最大值 思路 其实就是从最底部开始网上找,由于0是唯一的一个,所欲最好给在最 ...
- 2021年度训练联盟热身训练赛第三场赛后补题
2021年度训练联盟热身训练赛第三场赛后补题 A Circuit Math [题目分析] [代码展示] B Diagonal Cut [题目分析] [代码展示] C Gerrymandering [题 ...
- hdu 5381 2015多校第八场 莫队算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5381 还没学过莫队算法....网上也找不到莫队算法的论文,只能勉强看着别人的代码打下来... 稍微介绍 ...
最新文章
- php7安装执行configure报错error: off_t undefined; check your library configuration
- php中堆和栈的使用
- python—多进程之进程的创建(一)
- 同步与异步以及线程与进程
- python wget 卡住_python – Paramiko在执行大型wget命令时挂起
- 自定义的Spinner文字居中
- OpenGL常见函数功能查询
- repo一个新工程使用步骤
- Unix/Linux环境C编程新手教程(40) 初识文件操作
- Cinema 4D R25 for mac(c4d r25)快捷键分享
- react中p标签_React 2020 p1简介和安装
- 《一本书读懂24种互联网思维》读书笔记
- 代码质量 权威精选植根于开发实践的最佳读物
- [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
- 12.5m分辨率DEM数据?解读ASF DAAC的DEM数据--关于地理数据收集与处理的基本工具推荐(5)
- 网易我的世界服务器配置文件翻译,精致存储的配置文件翻译 - [RS]精致存储 (Refined Storage) - MC百科|最大的Minecraft中文MOD百科...
- 《操作系统》学习笔记|6.6外存空间管理
- Premiere视频制作(手机竖屏)
- 详解 js 函数中的 arguments
- if函数多个条件php,EXCEL中IF函数多条件判断怎么写