hdu 1216 Assistance Required

来源:互联网 发布:净化网络环境的议论文 编辑:程序博客网 时间:2024/05/16 13:46

dfs 预处理可以过 不是素数 仔细读题


/*    author:ray007great    version:1.0*/#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<cmath>#include<vector>#include<set>#include<string>#include<queue>using namespace std;typedef long long ll;/*  define */#define sf(a) scanf("%d",&a)#define sfs(a) scanf("%s",a)#define sfI(a) scanf("%I64d",&a)#define pf(a) printf("%d\n",a)#define pfI(a) printf("%I64d\n",a)#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define repd(i,a,b) for(int i=(a);i>=(b);i--)#define rep1(i,a,b) for(int i=(a);i<(b);i++)#define clr(a) memset(a,0,sizeof(a))#define clr1(a) memset(a,-1,sizeof(a))#define pfk  printf("fuck\n")/*  define */const int N = 35000;bool f[N];int cnt,ans[N];void dfs(int now,int kk){    if(now>N) return ;    int cc=0,i;    for(i=now+1;i<N;i++){        if(!f[i]) {cc++;}        if(cc==kk){            f[i]=1;            dfs(i,kk);            break;        }    }}void init(){    for(int i=2;i<=N;i++){        if(!f[i]){            cnt++;            ans[cnt]=i;            dfs(i,i);        }    }}int main(){    int n;    init();    while(cin>>n){        if(n==0) return 0;        printf("%d\n",ans[n]);    }    return 0;}


原创粉丝点击