UESTC--1253--阿里巴巴和n个大盗(博弈)
来源:互联网 发布:软件开发招标 编辑:程序博客网 时间:2024/04/28 15:56
阿里巴巴和n个大盗
Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu
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号)。
Source
第七届ACM趣味程序设计竞赛第二场(正式赛)
#include<iostream>using namespace std;int main(){int n,m;while(cin>>n>>m){n++;if(n==2)cout<<-1<<endl;else if(n==3)cout<<m<<endl;else cout<<m-(n+1)/2<<endl;}return 0;}
0 0
- UESTC - 1253 阿里巴巴和n个大盗 (博弈)
- UESTC--1253--阿里巴巴和n个大盗(博弈)
- UESTC 1253 阿里巴巴和n个大盗 博弈、策略
- UESTC 1253 阿里巴巴和n个大盗(博弈)
- 阿里巴巴和n个大盗
- 博弈:阿里巴巴与雅虎
- UESTC 757 棋盘 博弈、策略
- UESTC 766 乐乐和球球 博弈&&暴力(也可以不用暴力法)
- UESTC 1654 肆虐的病毒 博弈DP
- UESTC 1256 昊昊喜欢运动 n^2的预处理 or 前缀和
- 阿里巴巴产品实习生N天
- UESTC - 1034 AC Milan VS Juventus (模拟&博弈)
- UESTC 1661 Playing With Stones 博弈打表
- poj博弈n连刷
- UESTC
- UESTC
- UESTC
- UESTC
- THE Perceptron Convergence Theorem
- 队列的基本操作
- Netbeans jdkhome 配置
- nyoj 飞翔d
- c语言操作数据库sql
- UESTC--1253--阿里巴巴和n个大盗(博弈)
- /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
- pat1011:A+B和C
- iOS 基于MVC设计模式练习UITableView使用 —— HERO博客
- 公共技术点之 Java 注解 Annotation
- 最长公共子序列(连续)
- 数据存储类型
- Hadoop 1.x HDFS常见Shell命令
- matlab实现相位解包裹