您的位置:首页 > 其它

hdu 6043 KazaQ's Socks 模拟

2018-02-01 22:23 309 查看
题目链接:

题意:KazaQ每天穿袜子。

一开始,他的衣柜里有n双从1号到n号的袜子。

每天早上,他都会穿上一双袜子,是数值最小的那双袜子。

每天晚上,他都把这双袜子放在篮子里。 如果现在篮子里有n-1双袜子的话,懒惰的KazaQ必须洗掉它们。
这些袜子明天晚上再次放进衣柜里。

KazaQ想知道第k天应该穿哪双袜子。

思路:假设n双袜子,进行模拟,发现规律为1~n,(1~n-1,1~n-2,n),(1~n-1,1~n-2,n).....其中有个循环节

#include <bits/stdc++.h>
using namespace std;

int main()
{
long long k,n;
int cas=1;
while(~scanf("%lld%lld",&n,&k))
{
printf("Case #%d: ",cas++);
if(k<=n)
{
printf("%lld\n",k);
continue;
}
k-=n;
k%=(2*n-2);
if(1<=k&&k<=n-1)
{
printf("%lld\n",k);
continue;
}
else
{
k-=(n-1);
if(1<=k&&k<=n-2)
{
printf("%lld\n",k);
continue;
}
else printf("%lld\n",n);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: