Hdu 5317 RGCDQ (dp+预处理)
2016-07-10 20:06
351 查看
解析:F(x)的最大值是7,直接通过dp统计各个值的前缀和即可。
[code]:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int maxn = 1e6+5;
int dp[maxn][9];
int divide(int n){
int i,j,ans = 0;
for(i = 2;i*i <= n;i++){
if(n%i) continue;
ans++;
while(n%i==0){
n /= i;
}
}
if(n != 1) return ans+1;
else return ans;
}
void preprocess(){
int i,j;
dp[2][1] = 1;
for(i = 3;i <= 1000000;i++){
for(j = 1;j < 9;j++) dp[i][j] = dp[i-1][j];
dp[i][divide(i)]++;
}
}
int main(){
int i,j,cas,l,r;
//printf("%d\n",2*3*5*7*11*13*17);
preprocess();
scanf("%d",&cas);
while(cas--){
scanf("%d%d",&l,&r);
int ans = 1;
for(i = 2;i < 9;i++){
if(dp[r][i]-dp[l-1][i]>1) ans = i;
else if(dp[r][i]-dp[l-1][i]>0){
for(j = 2*i;j < 9;j+=i){
if(dp[r][j]-dp[l-1][j]>0){
ans = i;
break;
}
}
}
}
printf("%d\n",ans);
}
return 0;
}
[code]:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int maxn = 1e6+5;
int dp[maxn][9];
int divide(int n){
int i,j,ans = 0;
for(i = 2;i*i <= n;i++){
if(n%i) continue;
ans++;
while(n%i==0){
n /= i;
}
}
if(n != 1) return ans+1;
else return ans;
}
void preprocess(){
int i,j;
dp[2][1] = 1;
for(i = 3;i <= 1000000;i++){
for(j = 1;j < 9;j++) dp[i][j] = dp[i-1][j];
dp[i][divide(i)]++;
}
}
int main(){
int i,j,cas,l,r;
//printf("%d\n",2*3*5*7*11*13*17);
preprocess();
scanf("%d",&cas);
while(cas--){
scanf("%d%d",&l,&r);
int ans = 1;
for(i = 2;i < 9;i++){
if(dp[r][i]-dp[l-1][i]>1) ans = i;
else if(dp[r][i]-dp[l-1][i]>0){
for(j = 2*i;j < 9;j+=i){
if(dp[r][j]-dp[l-1][j]>0){
ans = i;
break;
}
}
}
}
printf("%d\n",ans);
}
return 0;
}
相关文章推荐
- 第一篇博客 MOS驱动
- Spring (一)
- ZooKeeper配置详解
- MD5实现加密工具
- Android签名详解(转自ok_lanyan - 博客园)
- 子查询
- 数据结构之拓扑排序
- Java线程(学习整理)--2---加入另一个线程join
- Android签名总结
- 基于bootstrap和php的项目
- MathJax basic tutorial and quick reference
- ArrayList与HashSet的比较,以及HashCode分析, 内存泄露
- AsyncTask
- 集训开始
- Python 数据抓取之正则表达式
- ccnuacm
- 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法
- 某二叉树的先根遍历序列和后根遍历序列正好相反,则该二叉树具有的特征是()----腾讯2016研发工程师在线模拟笔试题
- CCNU ACM 2016夏季集训·开始
- Java IO和NIO文章目录