原题链接: https://codeforces.com/problemset/problem/1425/A


测试样例

input
2
5
6
output
2
4

Note

For the first case, the game is as follows:

  1. Mr. Chanek takes one coin.
  2. The opponent takes two coins.
  3. Mr. Chanek takes one coin.
  4. The opponent takes one coin.

For the second case, the game is as follows:

  1. Mr. Chanek takes three coins.
  2. The opponent takes one coin.
  3. Mr. Chanek takes one coin.
  4. The opponent takes one coin.

题意: 现在ChanekChanekChanek和对手玩一个博弈游戏,规则是这样,有一个宝箱中含有nnn个金币,每个人交互进行一回合,ChanekChanekChanek先开始。进行操作有两种选择:

  • 你可以拿走一个金币
  • 如果宝箱中金币数量为偶数,你可以拿走宝箱金币的一半。

当宝箱金币数量为0时,游戏结束。他们都试图得到这最大的金币数量,且他们都玩得最优,问ChanekChanekChanek能获得的最大金币数。

解题思路: 既然是最优问题,我们就要思考,什么时候最优,如果我可以进行第二步操作,那么我们是不是倾向于进行第二步操作。 因为这样的收益是目前最大的。当然,这只考虑到你自己,你没有考虑到别的因素。如果我们进行完第二步操作后,别人只能进行第一步操作,而你又能进行第二步操作这是不是最优的?当然是,那么这种情况其实就是444的倍数的时候,考虑到这个我们则可以进行选择了,在模拟回合的时候我们要变换角色,可以通过01异或来解决该问题,同时我们也只需要统计ChanekChanekChanek的硬币数即可。

AC代码

/*
*邮箱:unique_powerhouse@qq.com
*blog:https://me.csdn.net/hzf0701
*注:文章若有任何问题请私信我或评论区留言,谢谢支持。
*
*/
#include<bits/stdc++.h> //POJ不支持#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pairusing namespace std;const int inf = 0x3f3f3f3f;//无穷大
const int maxn = 1e5;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll>  pll;
typedef pair<int, int> pii;
//*******************************分割线,以上为自定义代码模板***************************************//ll t,n;
int main(){//freopen("in.txt", "r", stdin);//提交的时候要注释掉IOS;while(cin>>t){while(t--){cin>>n;ll ans=0;ll player=0;//0代表Chanek,1代表Arena。//开始游戏,利益最大化。while(n){if(n%2){if(player==0){ans++;}n--;}else{if(n==4||(n>4&&n%4!=0)){if(player==0){ans+=n/2;}n/=2;}else{if(player==0){ans++;}n--;}}player^=1;}cout<<ans<<endl;}}return 0;
}

A. Arena of Greed(博弈+贪心)2020 ICPC, COMPFEST 12, Indonesia Multi-Provincial Contest相关推荐

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

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

  2. 2020 ICPC Macau A. Accelerator(期望,计数,分治FFT)(每日一题 21.7.6)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2020 ICPC Macau A. Accelerator(分治FFT) Problem 给定长度为 ...

  3. 2020 ICPC NAC

    2020 ICPC NAC 题号 题目 知识点 难度 A Another Coin Weighing Puzzle B Mini Battleship C Bomas D All Kill E Gri ...

  4. A. Arena of Greed

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

  5. The 2020 ICPC Asia Shenyang Regional Programming Contest I题 Rise of Shadows(数论)

    题目链接The 2020 ICPC Asia Shenyang Regional Programming Contest 题目大意: 一天内有H小时,每小时M分钟,时针分针以恒定速率旋转. 现在若时针 ...

  6. The 2020 ICPC Asia Yinchuan Regional Programming Contest

    The 2020 ICPC Asia Yinchuan Regional Programming Contest A 开三个vector数组存储x,y,z轴上的点,unique+erase去重 #in ...

  7. 【2020 ICPC Asia East Continent Final】赛前训练

    这里写自定义目录标题 [2020 ICPC Asia East Continent Final]赛前训练 A - Namomo Subsequence 输入: 输出: 样例: 解析: 代码: F - ...

  8. 数据分析IJCAI 2020:录用率12.6%,华人占据半壁江山,表征学习、GNN成热点 | AI日报...

    智源学者何晓冬参与论文获IEEE信号处理协会最佳论文奖,Yoshua Bengio是合作者之一 近日,智源学者.京东集团技术副总裁何晓冬参与论文<Using Recurrent Neural N ...

  9. 一周新论文 | 2020年第12周 | 自然语言处理相关

    <一周新论文>系列之2020年第12周:自然语言处理相关 本周重点关注: Google: [19] Microsoft: [57] 其他: [26], [32], [50], [60] 2 ...

最新文章

  1. php调用txt接口,PHP 如何更优雅地调用 API 接口
  2. asp图片截图代码并且利用asp上传图片压缩
  3. 1.1 Java包装类、装箱和拆箱
  4. 【数论】YY的GCD(P2257)
  5. oracle pl sql case,oracle plsql case when_end case小记
  6. js准确获取当前页面url网址信息
  7. mysql+proxysql+keepalived实现高可用的数据库读写分离
  8. QT第三方串口类Win_QextSerialPort,串口工具插拔后无法继续使用问题
  9. Web安全漏洞介绍及防御-文件上传漏洞
  10. 如何编写单元测试用例
  11. 计算机无法搜索照片,电脑上照片查看器无法打开照片
  12. 【产品设计-小程序】小胖工具箱系列—汇率换算
  13. 4. C语言预定义符号
  14. ZBrush新手推荐使用这17个小技巧和常用快捷键、笔刷
  15. 作为 Gopher, 你知道 Go 的注释即文档应该怎么写吗
  16. 使用PuTTY上传和下载文件
  17. python 几何教学_GEE学习笔记 八十三:【GEE之Python版教程十三】几何图形
  18. 科技大佬的那些情史!
  19. 论OpenVZ与KVM的区别
  20. SourceTree 3.3.8 免注册 安装

热门文章

  1. 小米手机产品全球不再使用“MI”品牌,改用“xiaomi”全称品牌
  2. JVM类加载过程,JDK和JER区别
  3. linux 游戏 复刻,魔法门复刻手游官网版-魔法门复刻下载v4.00.9-Linux公社
  4. android 编程klinon,一些常见的知识(四) - 393858338的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 写了一篇文章老是提示包含敏感词,修改了好多遍
  6. 3D点云论文相关论文资料总结
  7. 紫色特别舒服的UI趣味测试微信小程序源码下载包含多种评测
  8. 【深度学习】1-权重参数全相同值初始化,导致无法训练-python
  9. 一文梳理人脸识别,看完全都懂了!
  10. 国宝和家宝,一个都不能少。