POJ 2081 #include #include bool exist[500001];int a[3500000];int init(){\x05int i;\x05memset(exist,false,sizeof(exist));\x05a[0]=0;\x05exist[0]=true;\x05for(i=1;i0&&exist[a[i-1]-i]==false)\x05\x05{\x05\x05\x05a[i]=a[i-1]-i;\x05\x05}\x05\x05else\x05\x
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/15 16:58:07
POJ 2081 #include #include bool exist[500001];int a[3500000];int init(){\x05int i;\x05memset(exist,false,sizeof(exist));\x05a[0]=0;\x05exist[0]=true;\x05for(i=1;i0&&exist[a[i-1]-i]==false)\x05\x05{\x05\x05\x05a[i]=a[i-1]-i;\x05\x05}\x05\x05else\x05\x
POJ 2081
#include
#include
bool exist[500001];
int a[3500000];
int init()
{
\x05int i;
\x05memset(exist,false,sizeof(exist));
\x05a[0]=0;
\x05exist[0]=true;
\x05for(i=1;i0&&exist[a[i-1]-i]==false)
\x05\x05{
\x05\x05\x05a[i]=a[i-1]-i;
\x05\x05}
\x05\x05else
\x05\x05{
\x05\x05\x05a[i]=a[i-1]+i;
\x05\x05}
\x05\x05exist[a[i]]=true;
\x05}
\x05return 0;
}
int main()
{
\x05int n;
\x05init();
\x05while(scanf("%d",&n)==1)
\x05{
\x05\x05if(n==-1) break;
\x05\x05printf("%d\n",a[n]);
\x05}
\x05return 0;
}
这是我的代码,结果正确,但提交WA大侠们看看错在哪里啊?
POJ 2081 #include #include bool exist[500001];int a[3500000];int init(){\x05int i;\x05memset(exist,false,sizeof(exist));\x05a[0]=0;\x05exist[0]=true;\x05for(i=1;i0&&exist[a[i-1]-i]==false)\x05\x05{\x05\x05\x05a[i]=a[i-1]-i;\x05\x05}\x05\x05else\x05\x
bool exist[500001];
int a[3500000];
大小弄错了吧...
#include
#include
bool exist[3012501];
int a[500001];
int init(){
int i;
memset(exist,false,sizeof(exist));
a[0]=0;
exist[0]=true;
for(i=1;i0&&exist[a[i-1]-i]==false){
a[i]=a[i-1]-i;
}
else{
a[i]=a[i-1]+i;
}
exist[a[i]]=true;
}
return 0;
}
int main(){
int n;
init();
while(scanf("%d",&n)==1){
if(n==-1) break;
printf("%d\n",a[n]);
}
return 0;
}
这个ac了..