2017第一次多校联合 1011KazaQ's Socks

来源:互联网 发布:淘宝什么叫直通车 编辑:程序博客网 时间:2024/06/05 14:36

题目

题意:要穿袜子,你有n双袜子,袜子有编号,然后问第几天穿第几双袜子。

做法:把345双袜子的10天内穿法,找到了不像是规律的规律,强行写。
前n-1天正常穿,第n天穿第n双,第k*n(k>=2)天穿第n-1双。
每n-1是一个周期,每一个周期内穿法是x,1,2,….,x和第几个周期有关,如果是偶数个则是n,如果是奇数个则是n-1;

#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int main(){    long long n,k;    int flag=1;    while(~scanf("%lld %lld",&n,&k))    {        printf("Case #%d: ",flag++);        long long temp=k%(n-1);        long long t1=k/(n-1);        if(n==2)        {            if(k%2==0)                printf("2\n");            else printf("1\n");        }        else if(temp==1)        {            if(t1==0)            {                printf("1\n");            }            else {                if(t1%2==0)                    printf("%lld\n",n-1);                else printf("%lld\n",n);            }        }        else if(temp==0)        {            if(t1!=1)            printf("%lld\n",n-2);            else printf("%lld\n",n-1);        }        else if(t1==0)        {            printf("%lld\n",temp);        }        else {            printf("%lld\n",temp-1);        }    }}
原创粉丝点击