思路:一个很经典的博弈问题,转自大神的题解

首先总人数是n+1人。
由于必须半数以上人同意才能通过方案,所以当剩余两个人时2号必死,因为1号不同意就能独吞。因此2号必须同意3号的方案,所以3号无论什么方案都会被通过,因此他会选择把所有宝石留给自己。
当总人数三个以上时就有以下的情况:显然4号需要至少3人的同意,可知3号是无论如何不会同意的,因此他只需要拉拢1,2号即可,也就是给他们1,1的宝石。
5个人时只要3个人同意即可,此时因为5号如果死3号必定不会得到宝石,所以只要给他1个宝石即可。然后再拉拢1,2号中的任意一个,给他们2个宝石即可。
以此类推,发现当(n+1)是偶数时阿里巴巴只要给1到n号人1,1,0,1,0,1,0....即可;当(n+1)是奇数时只要给x,x,1,x,1,x,1....(任意一个x是2,其余x都是0)即可。上述两种情况答案都是m-(n+1)/2。
因为题目所给数据范围的限制,本题不会出现m不够用的情况,在这里不再讨论。

注意心狠手辣一词。

另外补充的是也要注意题目中的 尽量确保自身利益不寄希望与别人给自己更大利益。

#include<iostream>
using namespace std;
int main()
{int n;int m;while (cin >> n >> m){if (n == 1)cout << -1 << endl;else if (n == 2)cout << m << endl;else if (n >= 3){n++;cout << m - (n + 1) / 2 << endl;}}
}

Description

阿里巴巴和$n$个大盗来到了一个藏满宝石的洞穴。洞里一共有$m$颗价值连城的宝石,每一颗都等价。盗亦有道,为了奖励帮忙打开洞穴门的阿里巴巴,大盗们决定让他一起加入分赃。大盗们决定采用一种方式分赃,分赃的方式如下:

1)每个人由抽签决定了自己的号码($1$, $2$, $3$, $\cdots$, $n+1$)。

2)由$n+1$号提出分配方案,然后大家表决,当且仅当超过半数的人同意时(包括他自己),按照他的方案进行分配,否则这个人将被杀死。

3)$n+1$号死后,由$n$号接替$n+1$号对剩下的人提出分配方案,类似$2$步骤。以此类推。

大盗们都有如下的几个性格特点

1)足智多谋,总是采取最优策略。

2)贪生怕死,尽量保全自己性命。

3)贪得无厌,希望自己得到越多宝石越好

4)心狠手辣,在自己利益最大的情况想希望越多人死越好。

5)疑心多虑,不信任彼此,尽量确保自身利益不寄希望与别人给自己更大利益。

不知道是不幸还是幸运,阿里巴巴抽到了$n+1$号签,意味着他将第一个提出分配方案。他想请教机智的你,他能否活下来,如果能又将获得最多多少个宝石?

Input

两个整数$n$, $m$,分别表示$n$个大盗和$m$个宝石($1 \leq n \leq 2 \cdot m-2$, $2 \leq m \leq 100$)。

Output

如果阿里巴巴能活下来输出一个整数$x$表示阿里巴巴最多获得的宝石数,否则输出$-1$。

Sample Input

4 100

Sample Output

97

Hint

分配方案 0 2 1 0 97 或2 0 1 0 97(从$1$号到$5$号)。

UESTC 1253 阿里巴巴和n个大盗(博弈)相关推荐

  1. 智能优化算法-阿里巴巴和四十大盗算法Ali baba and the Forty Thieves algorithm(附Matlab代码)

    引言 阿里巴巴和四十大盗算法Ali baba and the Forty Thieves algorithm是一种新的元启发式算法,用于解决全局优化问题.回想一下著名的阿里巴巴和四十大盗的故事,阿里巴 ...

  2. 阿里巴巴和四十大盗(背包问题)

    问题描述: 阿里巴巴闯进了四十大盗的宝藏山洞,山东一共有n种宝物,每种宝物有一定的重量w和相应的价值v,毛驴只能运走m重量的宝物,一种宝物只能拿一样,宝物可以分割,怎样才使价值最大呢? 问题分析: 要 ...

  3. 阿里巴巴和四十大盗的故事

    很久以前,在波斯国的某城市里住着兄弟俩,哥哥叫戈西母,弟弟叫阿里巴巴.父亲去世后,他俩各自分得了有限的一点财产,分家自立,各谋生路.不久银财便花光了,生活日益艰难.为了解决吃穿,糊口度日,兄弟俩不得不 ...

  4. 阿里巴巴四十大盗计算机病毒,阿里巴巴和四十大盗

    阿里巴巴心里这样想着,决心探个究竟. 匪徒们在树下拴好马,取下沉甸甸的鞍袋,里面显然装着金银珠宝. 这时,一个首领模样的人背负沉重的鞍袋,从丛林中一直来到那个大石头跟前,喃喃地说道:"芝麻, ...

  5. 这份程序员的简历刷爆了九月的朋友圈

    今年五一期间,一份简历刷爆了很多人的朋友圈.我们有幸联系到了这份简历的主人公,邀请他来将自己在编程领域从事了20年的工作心得分享给大家,希望你看完后能有所收获. 我是一个从事编程工作20年的程序员.从 ...

  6. 推荐系统的封闭和禁锢问题

    参考:推荐系统的十个关键点_wishchinYang的专栏-CSDN博客_推荐系统项目技术点. 推荐系统的第一-冷启动问题,类似于一个小白第一本书是读到基督教的书,第一页写着人是上帝那玩意的羔羊,能被 ...

  7. 【渝粤题库】陕西师范大学210002儿童文学 作业(高起专、高起本、专升本)

    <儿童文学>作业 单选题 1.构成作品音响效果的因素是象声词.韵律和( ). 2.幼儿文学作品用词的总要求是:具体.浅显.充分发挥( )作用 3.在儿童文学创作艺术手法的运用中应注意心理描 ...

  8. 区块链中的密码学(五)-零知识证明简述

    本篇是这个系列的最后一篇,尽管在区块链中还有很多的密码学应用,将来会必然会更多,然而笔者认为,就今天我们有限的学习时间来讲的话,任何人都应该对信息的获取做减法.思来想去,选择了"零知识证明& ...

  9. 如何让debuge的dll名字改变_杨石头:如何给品牌取个好名字?

    一个好的品牌名称,不是一个简单的记号.它能强化定位,参与竞争,而且还以其可能隐含的形象价值使某一品牌获得持久的市场优势. 在1920 年时 "可口可乐"刚刚进入上海,最开始音译过来 ...

最新文章

  1. 【FFmpeg】自定义回调函数处理AVIOContext中的数据
  2. 套接字编程(VC_Win32)
  3. sklearn输出模型参数_如何使用sklearn优雅地进行数据挖掘?
  4. K8S部署工具:KubeOperator系统设置
  5. 17种常用的JS正则表达式 非负浮点数 非负正数
  6. ORA-01830:日期格式图片在转换整个输入字符之前结束
  7. gps频率范围_以GPS为例讲解射频接收阻抗匹配的过程
  8. 我有一个朋友毕业后一直在腾讯
  9. linux固定dns怎么设置,Linux之如何进行固定IP、DNS等设置
  10. ssh mysql视屏_ssh+mysql实现的Java web在线订电影票系统项目源码附带视频指导教程...
  11. 阿里云推出香港高防IP服务 为中国企业出海安全护航
  12. 酷狗php 技术题目,广州酷狗php面试题(赋答案)
  13. 2022百度之星第一场初赛
  14. 下载离线地图数据并搭建离线地图开发环境(一套代码支持谷歌、百度、高德等所有地图源)
  15. 黑人抬棺html网站源码
  16. MRR(Mean Reciprocal Rank)笔记
  17. c语言编程中的逗号与结果,C++编程中逗号运算符和条件运算符的使用方法讲解...
  18. 黑客测试漏洞被逮捕 白帽的正确姿势是什么
  19. An Efficient Joint Training Framework for Robust Small-Footprint Keyword Spotting(2020)
  20. LDdecay计算和做图

热门文章

  1. Hbase-之StoreFile的Compaction(手动major compaction、管理compaction、compaction的策略以及相关配置参数)
  2. java 十进制转十六进制
  3. 每个程序员都要知道的35个jQuery小技巧
  4. 学习SCRATCH制作迷宫小游戏
  5. IE浏览器过期,自动跳转至Edge解决办法
  6. solrj java_【solr】java整合solr5.0之solrj的使用
  7. 文件找回工具,值得推荐的4款!
  8. 【Beta阶段任务分配】命劫开发
  9. Python-天天向上续
  10. Linux | 压缩和解压文件详细