UVA 11489 Integer Game(博弈,规律)

网友投稿 805 2022-08-27

UVA 11489 Integer Game(博弈,规律)

UVA 11489 Integer Game(博弈,规律)

题意:给出一段长度不超过1000位的数字, 两个人进行游戏, 分别从数字中去掉某一位数字, 并且去掉之后, 剩下的数字的每一位数相加都是3的倍数, 最后不能取, 或是没有数字了, 就输了. 先手胜利的话就输出"S", 否则输出"T".

在中间过程中,取前是满足sum%3=0的,取后也要满足sum%3=0,所以取的数字一定是3的倍数(包含0),这一个步骤可以推广至从第二步到最后一步,第一步则要具体分析:如果sum%3=1,那么要想赢就得取某一位上mod(3)等于1的数字,没有的话就输了;如果sum%3=2,那么要想赢就得取某一位上mod(3)等于2的数字,没有的话就输了;那么如果sum%3=0,那么要想赢就得取某一位上mod(3)等于0的数字,没有的话就输了。最后针对步骤可以得到结论:step%2==1先手赢,否则后手赢。

#include #include#includeusing namespace std;int n,i,j;char s[1005]; int dit[3];int main(int argc, char *argv[]) { //freopen("cin.txt","r",stdin); while(cin>>n){ for(i=1;i<=n;i++){ scanf("%s",s); memset(dit,0,sizeof(dit)); int length=strlen(s),sum=0; for(j=0;j

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ACE中HAStatus的含义
下一篇:11个强大的Visual Studio调试小技巧
相关文章

 发表评论

暂时没有评论,来抢沙发吧~