HDU 1847 ——Good Luck in CET-4 Everybody!
Good Luck in CET-4 Everybody!
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
“升级”?“双扣”?“红五”?还是“斗地主”?
当然都不是!那多俗啊~
作为计算机学院的学生,Kiki和Cici打牌的时候可没忘记专业,她们打牌的规则是这样的:
1、 总共n张牌;
2、 双方轮流抓牌;
3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)
4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;
假设Kiki和Cici都是足够聪明(其实不用假设,哪有不聪明的学生~),并且每次都是Kiki先抓牌,请问谁能赢呢?
当然,打牌无论谁赢都问题不大,重要的是马上到来的CET-4能有好的状态。
Good luck in CET-4 everybody!
典型的错误代码,我犯了。。。
#include <cstdio> #include <iostream> using namespace std; int main () { int n, cnt; while(scanf("%d", &n) != EOF) { cnt=0; while(n) { if(n&1) { cnt++; } n >>= 1; } printf("%s\n", cnt&1 ? "Kiki":"Cici"); } return 0; }
View Code
正确解法:
#include <cstdio> #include <iostream> using namespace std; int base[10]; bool dp[1005]; void Init() { for(int i=0; i<10; i++) { base[i] = 1<<i; } for(int i=1; i<=1000; i++) { dp[i] = 0; for(int j=0; j<10 && base[j]<=i; j++) { if(dp[i-base[j]]==0) { dp[i] = 1; break; } } } } int main () { Init(); int n; while(scanf("%d", &n) != EOF) { printf("%s\n", dp[n]? "Kiki":"Cici"); } return 0; }
当然,通过枚举可以发现规律:
#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { if(n%3==0) printf("Cici\n"); else printf("Kiki\n"); } }
HDU 1847 ——Good Luck in CET-4 Everybody!相关推荐
- HDU 1847 Good Luck in CET-4 Everybody!(巴什博弈论)
题目地址:HDU 1847 这题可以用NP状态转换. 首先0的时候就代表无法出牌了,所以是必败态.然后根据每一个可以一步到达必败态的是必胜态,不可以一步到达必败态的是必败态.可以推出状态转移方程,然后 ...
- HDU 1847 Good Luck in CET-4 Everybody
题目链接:Problem - 1847 (hdu.edu.cn) Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工 ...
- HDU 1847 Good Luck in CET-4 Everybody! (巴什博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU 1847 Good Luck in CET-4 Everybody!(组合博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU 1847 Good Luck in CET-4 Everybody! 尼姆博弈
点击打开链接 Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/3 ...
- HDU 1847 Good Luck in CET-4 Everybody! (sg函数)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU(1847)Good Luck in CET-4 Everybody!
利用PN分析求解此题.递推下去会发现3和3的倍数都是P点. #include <iostream> #include <stdio.h> #include <string ...
- HDU 1847 Good Luck in CET-4 Everybody!
当对手面对3的时候,你就已经赢了,所以,尽可能的给对手剩下3,那么只要n是3的倍数就 是Cici赢,不是的话,Kiki会想办法给Cici留下3. #include<stdio.h>int ...
- HDU - 1847 Good Luck in CET-4 Everybody!(sg函数,水题)
题目链接:点击查看 题目大意:给出n张牌,两个人轮流摸牌,每次只能摸2的幂次,问先手必胜还是必败 题目分析:简单sg打表题,先预处理出sg表,然后O(1)查询即可 #include<iostre ...
最新文章
- 工业机器人的下一个竞争焦点已经非常明确:通用人工智能(AGI)
- 家中电脑无法共享,联通域名解析劫持竟是罪魁
- ubuntu1604编译android5.1(android L)失败error: unsupportedreloc 43等问题
- Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表
- Mybatis增删改
- Treap原理和实现方法
- scheme 学习:pair 和 list
- Kali Linux 无线渗透测试入门指南 第八章 攻击企业级 WPA 和 RADIUS
- 滴滴上线特快和特惠:极端天气绝不动态加价
- eosio.cdt心得
- Debugging with GDB (2) 调用GDB
- php连接数据库(一)
- 美国计算机语言学phd,美国大学语言学(Linguistics)专业PhD排名(转)2013
- Python爬虫实战:css加密 动态字体练习 猿人学比赛题目七题详解
- 安卓获取手机唯一码工具类
- 【问题】PPS、PPSX自动放映格式打开直接进入编辑模式
- 键盘定位板图纸_客制化键盘
- 【蛮力算法】数据结构与算法
- Intel Xeon Platinum 8269CY(Cascade Lake)处理器性能评测
- grafana模板导入没有数据解决方法
热门文章
- 【问题解决】This container is having trouble accessing https://k8s.gcr.io | 如何解决从k8s.gcr.io拉取镜像失败问题?
- TJOI 2015 弦论 题解
- 深入理解JAVA中的跨包继承
- 天翼云流量服务器,天翼云CDN常见问题解答
- 2022年最新国产单端口1000M Ethernet PHY简介
- iOS开发-简单图片背景替换(实现抠图效果)
- vue获取上一个路由地址
- 关于 Vue.js 的那些事儿
- 游戏一直被攻击掉线卡顿是什么原因?服务器被攻击怎么办?
- hql删除mysql语句_hibernate -- HQL语句总结