POJ2081

来源:互联网 发布:php require once地址 编辑:程序博客网 时间:2024/05/16 14:57

水,按题意打表就好了,注意vis[]数组要开大点 就好了.

#include <iostream>#include <cmath>#include <cstring>#define MAXN 500005#define LL long longusing namespace std;LL sq[MAXN];LL vis[MAXN*10];void init(){    LL i;    memset(vis,0,sizeof(vis));    sq[0]=0;    vis[0]=1;    for(i=1;i<=500000;i++)    {        LL tem=sq[i-1]-i;        if(tem>0&&vis[tem]==0)        {            sq[i]=tem;            vis[tem]=1;        }        else        {            sq[i]=sq[i-1]+i;            vis[sq[i-1]+i]=1;        }    }}int main(){    int n;    init();    while(cin>>n&&n!=-1)    {        cout<<sq[n]<<endl;    }    return 0;}
0 0
原创粉丝点击