codeforces 博弈 Arena of Greed
题目描述:
思想:
首先,我们应该明确,如果一开始石子的数量为偶数,那么先手可以控制后手的选择,因为先手可以拿一个,那么后手也只能拿一个,先手的局面又变为偶数了。如果先手拿走一半后,石子的数量只剩下奇数个,那么后手还是只能拿走1个,先手的局面又是偶数。所以如果先手为偶数,那么他先判断一下这个数除以2是否是2的倍数,如果是,那就只拿1个,如果不是,那就拿走一半。 注意:4是特例!!
为了实现这个情况,我们判断一下当前石子数量的一半是否为奇数,如果是,我们就取一半;如果不是,我们就取一个,对应的,对手也只能取一个,之后所得到的偶数的一般必然是个奇数。
AC代码:
void solve() {ll n; cin >> n;// 1800 900 // 1799 1798 899if (n % 2 == 0) {// 先手拿去一半后还剩奇数个石子最好不过ll ans = 0;while (n > 0) {if (n == 1) {ans += 1; break;}else if (n == 4) {ans += 3; break;}else if ((n / 2) % 2 == 1) {ans += n / 2; n = n / 2;n -= 1;// 对方只能拿走 1 个}else {ans += 1; n -= 2;}}cout << ans << endl;}else {ll x = n;n = n - 1;ll ans = 0;while (n > 0) {if (n == 1) {ans += 1; break;}else if (n == 4) {ans += 3; break;}else if ((n / 2) % 2 == 1) {ans += n / 2; n = n / 2;n -= 1;// 对方只能拿走 1 个}else {ans += 1; n -= 2;}}cout << x - ans << endl;}
}int main() {int t;cin >> t;while (t--) {solve();}
}
codeforces 博弈 Arena of Greed相关推荐
- A. Arena of Greed
链接:https://codeforces.com/problemset/problem/1425/A Lately, Mr. Chanek frequently plays the game Are ...
- A. Arena of Greed(博弈+贪心)2020 ICPC, COMPFEST 12, Indonesia Multi-Provincial Contest
原题链接: https://codeforces.com/problemset/problem/1425/A 测试样例 input 2 5 6 output 2 4 Note For the firs ...
- A. Arena of Greed【贪心+特判】
题目 传送门 inputCopy 2 5 6 outputCopy 2 4 题意:T组测试样例,每组一个数n,有n个物品,两个人轮流拿操作,有以下两种操作 1:拿一个物品 2:当n为偶数时拿一半物品. ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- Codeforces Round #726 (Div. 2) D. Deleting Divisors 博弈
传送门 文章目录 题意: 思路: 题意: 给你一个数nnn,有两个人博弈,每次可以将nnn减去一个nnn的因子,这个因子不能为111或nnn.当不能操作的人输掉游戏.问你先手赢还是后手赢. 思路: 这 ...
- TopCoder Arena 插件配置(1)Greed 2.0
在之前的TopCoder Arena 一日游记中的最后我们讲到,Topcoder Arena没有插件实在是太麻烦了. 而TopCoder Arena现在主流的3种插件配置中,相对来讲初步配置最省力且题 ...
- 【CodeForces】445B A Lot of Games 字典树博弈
传送门:[CodeForces]445B A Lot of Games 题目大意:两人一起构造一个串,每人每次向串的末尾放一个字母,必须保证放了这个字母后能够成所给的N个串的前缀,如果某个人不能放时 ...
- Codeforces 455B A Lot of Games(字典树+博弈)
题目连接: Codeforces 455B A Lot of Games 题目大意:给定n,表示字符串集合.给定k,表示进行了k次游戏,然后是n个字符串.每局开始,字符串为空串,然后两人轮流在末尾追加 ...
- [CodeForces 892A] Greed (Java中sort实现从大到小排序)
题目链接:http://codeforces.com/problemset/problem/892/A 具体的Java 中 sort实现降序排序:https://www.cnblogs.com/you ...
最新文章
- 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
- wamp php http 1.0500,HTTP 错误 500.0 - Internal Server Error C:\php-5.3.5\php.exe - FastCGI 进程意外退出...
- 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
- JavaScript中的原型,对split方法的重写
- 【数据结构与算法】之深入解析“二叉树的层序遍历II”的求解思路与算法示例
- Couldn‘t find grammar element for class javax.ws.rs.core.Response
- JetS3t使用说明
- java 识别fn键_Fn快捷键全解
- 开盘前1.5秒下单可追涨停股
- 山石网科张凌龄:安全市场日新月异 初创公司不容小觑
- 可以将每日计划以及日程提醒事项记录下来的待办清单便签有哪些
- kangle安装php7.0_Kangle Easypanel面板 PHP多版本切换 安装图文教程
- Iphone连接Openwrt的IPSEC服务器
- 7、面向对象设计:共性VS个性
- 【Ubuntu系统】ubuntu18.04磁盘空间满了无法进入系统(3种方式,已解决)
- 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)
- 大数据工程师入职京东年薪37w(附:面试真题分享)
- 南卡和声阔真无线降噪耳机哪款更好?南卡和声阔蓝牙耳机测评
- vue监控路由变化 vue路由配置
- SSH免密登陆功能配置