题目描述:

思想:

首先,我们应该明确,如果一开始石子的数量为偶数,那么先手可以控制后手的选择,因为先手可以拿一个,那么后手也只能拿一个,先手的局面又变为偶数了。如果先手拿走一半后,石子的数量只剩下奇数个,那么后手还是只能拿走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相关推荐

  1. A. Arena of Greed

    链接:https://codeforces.com/problemset/problem/1425/A Lately, Mr. Chanek frequently plays the game Are ...

  2. 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 ...

  3. A. Arena of Greed【贪心+特判】

    题目 传送门 inputCopy 2 5 6 outputCopy 2 4 题意:T组测试样例,每组一个数n,有n个物品,两个人轮流拿操作,有以下两种操作 1:拿一个物品 2:当n为偶数时拿一半物品. ...

  4. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  5. Codeforces Round #726 (Div. 2) D. Deleting Divisors 博弈

    传送门 文章目录 题意: 思路: 题意: 给你一个数nnn,有两个人博弈,每次可以将nnn减去一个nnn的因子,这个因子不能为111或nnn.当不能操作的人输掉游戏.问你先手赢还是后手赢. 思路: 这 ...

  6. TopCoder Arena 插件配置(1)Greed 2.0

    在之前的TopCoder Arena 一日游记中的最后我们讲到,Topcoder Arena没有插件实在是太麻烦了. 而TopCoder Arena现在主流的3种插件配置中,相对来讲初步配置最省力且题 ...

  7. 【CodeForces】445B A Lot of Games 字典树博弈

    传送门:[CodeForces]445B  A Lot of Games 题目大意:两人一起构造一个串,每人每次向串的末尾放一个字母,必须保证放了这个字母后能够成所给的N个串的前缀,如果某个人不能放时 ...

  8. Codeforces 455B A Lot of Games(字典树+博弈)

    题目连接: Codeforces 455B A Lot of Games 题目大意:给定n,表示字符串集合.给定k,表示进行了k次游戏,然后是n个字符串.每局开始,字符串为空串,然后两人轮流在末尾追加 ...

  9. [CodeForces 892A] Greed (Java中sort实现从大到小排序)

    题目链接:http://codeforces.com/problemset/problem/892/A 具体的Java 中 sort实现降序排序:https://www.cnblogs.com/you ...

最新文章

  1. 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
  2. wamp php http 1.0500,HTTP 错误 500.0 - Internal Server Error C:\php-5.3.5\php.exe - FastCGI 进程意外退出...
  3. 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
  4. JavaScript中的原型,对split方法的重写
  5. 【数据结构与算法】之深入解析“二叉树的层序遍历II”的求解思路与算法示例
  6. Couldn‘t find grammar element for class javax.ws.rs.core.Response
  7. JetS3t使用说明
  8. java 识别fn键_Fn快捷键全解
  9. 开盘前1.5秒下单可追涨停股
  10. 山石网科张凌龄:安全市场日新月异 初创公司不容小觑
  11. 可以将每日计划以及日程提醒事项记录下来的待办清单便签有哪些
  12. kangle安装php7.0_Kangle Easypanel面板 PHP多版本切换 安装图文教程
  13. Iphone连接Openwrt的IPSEC服务器
  14. 7、面向对象设计:共性VS个性
  15. 【Ubuntu系统】ubuntu18.04磁盘空间满了无法进入系统(3种方式,已解决)
  16. 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)
  17. 大数据工程师入职京东年薪37w(附:面试真题分享)
  18. 南卡和声阔真无线降噪耳机哪款更好?南卡和声阔蓝牙耳机测评
  19. vue监控路由变化 vue路由配置
  20. SSH免密登陆功能配置

热门文章

  1. 如何确定一笔用户的BTC转入记录
  2. Facebook sdk嵌入,登陆与注销
  3. 【编程之美】一摞烙饼的排序
  4. idog copy from,
  5. Unity项目技术方案Dots架构方案简介
  6. Python 增强视频画质,就这么做!
  7. ubuntu下sed命令详解 - Dicky - 开源中国社区
  8. 固态硬盘,机械硬盘,交换内存,虚拟内存,物理内存,这些你要知道!!
  9. Linux 日志查看 | cat 命令
  10. 关于大数定律的讨论(转)