HDU 6043 KazaQ's Socks 找规律

来源:互联网 发布:博罗县网络问政 编辑:程序博客网 时间:2024/06/05 14:32

    题意是说KazaQ有n双袜子,标号1到n放在柜子里,每天早上起床穿袜子选标号最小的一双。然后晚上回来将穿过的扔到篮子里。当篮子里的袜子数量为n-1的时候,就把这些袜子洗一下,第二天晚上再放回柜子里。问KazaQ在第K天穿的是哪一个标号的袜子。

    简单排一下就会发现这个题有一个简单的规律,前n天肯定都是按标号穿,然后后面几天因为穿第n双袜子的时候,所以穿1到n-1号,之后n号袜子在洗所以穿1号袜子。然后穿1到n-2号,因为此时n-1号在洗,所以接下来穿的是n号袜子,依次类推便可发现袜子穿的标号顺序为1、2、...、n、1、2、...、n-1、1、2、...、n-2、n、.....由此规律来进行分段,前面n个数直接输出,后面的分开前后两部分,取模就可以得出结果了。

    下面AC代码:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){    long long n,k;    long long t;    int Case=0;    while(scanf("%lld%lld",&n,&k)!=EOF)    {        Case++;        cout<<"Case #"<<Case<<": ";        if(k<=n)        {            cout<<k<<endl;            continue;        }        if(n==2)        {            if(k%2==0)                cout<<2<<endl;            else                cout<<1<<endl;            continue;        }        k-=n;        t=k%((n-1)*2);        if(t==0)            t=(n-1)*2;        if(t<n)        {            cout<<t<<endl;        }        else        {            if(t%(n-1)==0)            {                cout<<n<<endl;            }            else            {                cout<<t%(n-1)<<endl;            }        }    }    return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 护士证到期未延续注册怎么办 学籍和户口不在一起小升初怎么办 定了酒店不能退怎么办 去哪儿网酒店不允许取消怎么办 快递寄送身份证扣海关怎么办 7岁龋齿烂到牙根怎么办 法院判完对方说没钱怎么办 初中填完志愿后怎么办 上海小学借读一年级没有学籍怎么办 学历不高的我该怎么办 没学历的我该怎么办 物业达不到服务标准该怎么办 没有能力的人该怎么办 工作累了腰疼怎么办 机场来早了6小时怎么办 苏宁金融综合评分不足怎么办 苏宁金融秒拒怎么办 微盘账号忘记了怎么办 天府e税忘记密码怎么办 未成年在外面没地方住怎么办? 半框眼镜片掉了怎么办 选修差0.5个学分怎么办 脱产考博社保卡怎么办 幼儿上课不认真听讲怎么办 手机恢复的音频文件打不开怎么办 高考志愿填报不记得密码怎么办 经济纠纷案被告没有证据怎么办 管家婆管理员密码忘记了怎么办 人离职了公司扣发工资怎么办? 美国给我们断网怎么办 sci发表后发现错误怎么办 pos机按键是英文怎么办 蔚县县医院慢病本怎么办 知网下载的论文乱码怎么办 被期刊网骗了怎么办? 缝针缝到神经上怎么办 单位有个事特别多的领导怎么办 网上申请公司核名核不下来怎么办 老公把小三晒朋友圈老婆该怎么办 小三怀孕不愿意打掉怎么办 小三怀孕了引产怎么办