HDU 1847--Good Luck in CET-4 Everybody!

本文探讨了一个基于数学原理的游戏策略,通过分析玩家每次取牌后的余数变化来预测并制定胜利策略。主要关注如何在限定条件下,通过控制牌数的余数为3的倍数,实现必胜的局面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:http://acm.hdu.edu.cn/showproblem.php?pid=1847

分析:因为任何正整数都能写成若干个2的整数次方幂之和。因为规定只能取2的某个整数次方幂,只要你留敌手的牌数为3的倍数时,那么你就必赢,因为留下3的倍数时,敌手有两种景象:
1:若是轮到对方抓牌时只剩3张牌,对方要么取1张,要么取2张,剩下的你全取走,win! 
2:若是轮到对方抓牌时还剩3*k张牌,敌手不管取几许,剩下的牌数是3*x+1或者3*x+2。轮到你时,你又可以机关一个3的倍数。 所以无论哪种景象,当你留给敌手为3*k的时辰,你是必胜的。
题目说Kiki先抓牌,那么当牌数为3的倍数时,Kiki就输了。不然Kiki就能哄骗先手上风将留给对方的牌数变成3的倍数,就必胜。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<queue>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        if(n%3==0)
            cout<<"Cici"<<endl;
        else
            cout<<"Kiki"<<endl;
    }
    return 0;
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值