luogu1014【1999提高】Cantor表(模拟)

来源:互联网 发布:js a href 赋值 编辑:程序博客网 时间:2024/05/16 07:24

根据题意模拟。。。或者找找规律,都行。。。

#include<cstdio>int n,a,b,dx=1,dy=-1,x=1,y=1;int main(){    scanf("%d",&n);    int t=1,k=1;    while(k<n){        k+=4*t;        t++;    }    a=t;b=t;    for(int i=k-n;i>0;--i){        if(a==1){            if(x==1) {b-=1;dx=-dx;dy=-dy;}   //用xy标记用不用转向            else{                a+=dx;b+=dy;            }             x=-x;        }        else if(b==1){            if(y==1) {a-=1;dx=-dx;dy=-dy;}             else{                a+=dx;b+=dy;            }            y=-y;           }        else{           a+=dx;           b+=dy;        }    }    printf("%d/%d",a,b);    return 0;}