题意

P个海盗偷了D颗钻石后分赃($3 \leq P, D\leq 100$),采用分赃策略:

从1号开始,提出一个分配金币的方案,如果能够得到包括1号在内的绝对多数(即大于半数)同意,则执行该方案,否则1号将被投入大海喂鲨鱼;而后依次类似地由第2号、第3号等等海盗提方案。

且有假设:1.绝顶聪明,总以个人利益最大化作为行为准则;2. 在能够取得尽量多钻石的情况下,海盗不会故意致同伙于死地;

分析

倒着分析,

假设一种普通的情况,10颗钻石7个人分。

如果只剩2个人,那么无论2说什么1都会反对,除非他把钻石全给他。也就是下面这种情况。

(0,10)

如果只剩3个人,3知道了如果自己死了2的处境,如果想让自己的提议实现只要争取1个人的同意就好了。所以3会给2号一颗钻石2就会同意3的提议,不然就一枚都拿不到了。这样就变成了:

(9,1,0)

如果只剩4个人,4知道了如果自己死了3的方案,如果想让自己的提议实现只要争取2个人的同意就好了。所以4会给2号多一颗钻石,给1号一颗钻石,1和2就会同意4的提议。这样就变成了:

(7,0,2,1)

如果只剩5个人,5知道了如果自己死了4的方案,如果想让自己的提议实现只要争取2个人的同意就好了。所以5会给3号一颗钻石,给1号2颗钻石。这样就变成了:

(7,0,1,0,2)

如果只剩6个人,6知道了如果自己死了5的方案,如果想让自己的提议实现只要争取3个人的同意就好了。所以6会给4,2号一颗钻石,给3号2颗钻石。这样就变成了:

(6,0,1,2,1,0)

现在我们可以推出7个人的情况了,7知道了如果自己死了6的方案,如果想让自己的提议实现只要争取3个人的同意就好了。所以7会给4,2号一颗钻石,给3号2颗钻石。这样就变成了:

(6,0,1,2,0,0,1)

总结一下就是,有$i$ 个人时,由于知道 $i-1$ 个人时的情况,所以在前一轮选最小的 $i/2$ 个并每个多给一个。

具体的规律是 $P > 3$ 时,总有 $i/2-1$ 个1和一个2;$p=3$ 时为 $(D-1 \ \ 1 \ 0)$.

代码实现应该很简单吧.略

参考链接:http://www.voidcn.com/article/p-cxovyfju-qm.html

浙大PAT 2-10. 海盗分赃——经典博弈的更多相关文章

  1. Uva 10891 经典博弈区间DP

    经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能 ...

  2. 10 个 MySQL 经典错误【转】

    Top 1:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原 mysql> show variables like '%max_connec ...

  3. PAT 2-10. 海盗分赃(25)

    题目链接:http://www.patest.cn/contests/ds/2-10 解题思路:参考:http://blog.csdn.net/linsheng9731/article/details ...

  4. 10本Java经典书目推荐

    本文列出的10本书是我个人非常喜欢的Java书籍,当我有时间的时候,我就会将它们捧在手里阅读.甚至有些书我反复读过很多遍,每次重新读的时候总会有新的收获.因此这些书也是大部分Java程序员喜欢的书籍. ...

  5. A题进行时--浙大PAT 1001-1010

    pat链接:http://pat.zju.edu.cn 1 #include<stdio.h> 2 int main(){ 3 int a,b; 4 int c; 5 while(scan ...

  6. 浙大pat 1035题解

    1035. Password (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ...

  7. 10款 Mac 经典原型设计开发软件推荐

    在Mac上有大量强大的开发和设计工具,今天和大家推荐10款Mac上的经典原型设计开发工具,原型设计工具是开发者必备的一款工具,无论是网站开发还是移动APP开发,都需要在前期进行严格细致的原型设计,才能 ...

  8. ubuntu14.10,解决按照最新版Gnome 15.10后,经典Gnome桌面字体问题!

    ubuntu14.10刚安装完毕,我首先按照了经典Gnome桌面,随后我发现ubuntu软件中心里面能找到的软件明显不如先前我安装过的ubuntu了,我觉得有可能是因为我以前安装的ubuntu14.1 ...

  9. poj2975 Nim(经典博弈)

    Nim Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5866   Accepted: 2777 Description N ...

随机推荐

  1. 【转帖】Storm基本原理概念及基本使用

    Storm基本原理概念及基本使用 https://www.cnblogs.com/swordfall/p/8821453.html 1. 背景介绍 1.1 离线计算是什么 离线计算:批量获取数据.批量 ...

  2. - instanceof 和 isInstance 强转 类型 class MD

    目录 目录 instanceof 和 isInstance 强转 类型 class MD 简介 测试案例 继承关系 测试代码 打印结果 Markdown版本笔记 我的GitHub首页 我的博客 我的微 ...

  3. - Java中boolean类型占用多少个字节 MD

    目录 目录 Java中boolean类型占用多少个字节 1个bit(1位) 1个Byte(1字节,8位) 4个Byte(4字节,32位) 分析 官方文档中的描述 Markdown版本笔记 我的GitH ...

  4. 拷贝 vs 赋值

    其实我只要关注两个动作就够了: 拷贝.赋值=            (而构造.析构的步骤都是没疑问的.) ——>   赋值=  都是显式调用的, 而拷贝构造可以显示调,也可能隐式被调. 下图错误 ...

  5. python基础05day--函数

    一 函数知识体系 什么是函数?为什么要用函数?函数的分类:内置函数与自定义函数如何自定义函数 语法 定义有参数函数,及有参函数的应用场景 定义无参数函数,及无参函数的应用场景 定义空函数,及空函数的应 ...

  6. JavaWeb第二天--CSS

    CSS CSS简述 CSS是什么?有什么作用? CSS(Cascading Style Sheets):层叠样式表. CSS通常称为CSS样式或层叠样式表.主要用于设置HTML页面中的文本内容(字体. ...

  7. Spring框架的AOP编程,最通俗的语言解释,易懂易学

    第七章:AOP技术 前言: AOP技术是根据动态代理设计模式进行的技术.动态代理技术分jdk动态代理和cglib动态代理 jdk动态代理特点: (1)继承java.lang.reflect.proxy ...

  8. css三种引入方式以及其优先级的说法

    css 三种引入方式 方式一:行间式 ​ 1.在标签头部的style属性内 ​ 2.属性值满足css语法 ​ 3.属性值用key:value形式赋值,value具有单位 ​ 4.属性值之间用 分号 : ...

  9. Linux运维技术之讲解RAID

    RAID: 独立冗余磁盘阵列 ,将多块磁盘组合起来,组合成一个阵列,当成一个逻辑设备来使用的机制! RAID级别:仅代表磁盘组织不同,没有上下之分,组合raid时,不仅要考虑速度,还要考虑可用性. 磁 ...

  10. 【原】python 检查网站访问是否超时,并用钉钉机器人报警

    #!/usr/bin/env python import requests import json import logging webhook="上面创建钉钉机器人的webhook地址&q ...