5196K 16MS G++ 414B

刚开始还苦恼着要不要自己重新再推一个公式出来

后来发现他给的空间和时间限制,应该是足够的,就试了一下,结果就是上面这样子。

题目思路就是:首先生成结果

 

主程序里直接调用就可以了。

代码如下:

 


#include<string.h>
int a[500005];
bool f[3012505];
void init()
{
    
int i;
    memset(f,
0,sizeof(f));
    a[
0= 0;
    
for(i=1;i<=500000;i++){
        
if(a[i-1]-> 0 && ! f[a[i-1]-i]){
            a[i]
=a[i-1]-i;
            f[a[i
-1]-i] = 1;
        }
        
else{
            a[i]
=a[i-1]+i;
            f[a[i
-1]+i]=1;
        }

    }
}
int main()
{
    
int k;
    
    init();
    
while(scanf("%d",&k),k!=-1){
        printf(
"%d\n",a[k]);
    }
    
return 0;
}

 

 

相关文章:

  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
  • 2021-12-24
  • 2021-06-26
  • 2021-05-28
  • 2021-12-15
  • 2021-12-12
猜你喜欢
  • 2021-06-16
  • 2022-12-23
  • 2021-05-21
  • 2021-09-27
  • 2022-01-07
  • 2021-08-23
  • 2022-02-01
相关资源
相似解决方案