2015 Multi-University Training Contest 3 RGCDQ

来源:互联网 发布:python readline函数 编辑:程序博客网 时间:2024/05/18 00:15

<p> 传送带  :http://www.bnuoj.com/v3/problem_show.php?pid=49477</p><p>由于数据小,可以知道最多只能为7个,使用前缀和(线段树太复杂。。。)</p><p>f[]记录其质约数个数,num[i][j]记录i之前j个的个数</p>#include<cstdio>#include<cmath>using namespace std;const int Max=1000005;int f[Max],num[Max][8];int main(){    int t,l,r;    for(int i=2;i<Max;i++){//预处理        if(f[i]==0)        for(int j=i;j<Max;j+=i){            f[j]++;        }    }    for(int i=2;i<Max;i++){        for(int j=1;j<8;j++){            num[i][j]+=num[i-1][j];        }        num[i][f[i]]++;    }    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&l,&r);        int tt[8];        int ans=1;        for(int i=1;i<8;i++)        {            tt[i]=num[r][i]-num[l-1][i];        }        if(tt[2]>1||(tt[2]+tt[6])>1) ans=2;        if(tt[3]>1||(tt[3]+tt[6]>1)) ans=3;        if(tt[4]>1) ans=4;        if(tt[5]>1) ans=5;        if(tt[6]>1) ans=6;        if(tt[7]>1) ans=7;        printf("%d\n",ans);    }    return 0;}

0 0
原创粉丝点击