cdoj 1253 阿里巴巴和n個大盜 博弈論

2021-09-07 04:07:51 字數 1708 閱讀 6056

time limit: 20 sec

memory limit: 256 mb

阿里巴巴和n

個大盜來到了乙個藏滿寶石的洞穴。洞裡一共有m

顆價值連城的寶石,每一顆都等價。盜亦有道,為了獎勵幫忙開啟洞穴門的阿里巴巴,大盜們決定讓他一起加入分贓。大盜們決定採用一種方式分贓,分贓的方式如下:

1)每個人由抽籤決定了自己的號碼(1

, 2, 3

, ⋯, 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≤n≤2⋅m−2

, 2≤m≤100

)。output

如果阿里巴巴能活下來輸出乙個整數x

表示阿里巴巴最多獲得的寶石數,否則輸出−1。

sample input

4 100
sample output

97
題意

題解:

首先總人數是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 #include 

using

namespace

std;

intn,m,ans;

intmain()

else

printf(

"%d\n

",ans);

return0;

}

UESTC 1253 阿里巴巴和n個大盜(博弈)

思路 乙個很經典的博弈問題,大神的題解 首先總人數是n 1人。由於必須半數以上人同意才能通過方案,所以當剩餘兩個人時2號必死,因為1號不同意就能獨吞。因此2號必須同意3號的方案,所以3號無論什麼方案都會被通過,因此他會選擇把所有寶石留給自己。當總人數三個以上時就有以下的情況 顯然4號需要至少3人的同...

十五個創業忠告 轉貼阿里巴巴

商海無涯,商機無限。怎樣少走彎路,快速而成功地創業創富,更是許多有志人士孜孜以求 苦苦拼鬥所共同面臨的難題。下面,就此獻上十五個忠告供您開啟。第乙個忠告 首先,要選擇賺錢的行業,投身有巨大潛力發展潛力的事業。第二個忠告 到錢多的地方,到最適合你 需要你,並且最容易讓你成功的地方去發掘寶藏。第三個忠告...

我和阿里巴巴的孽緣(三)

其實這事過去很久了,上週一的時候,由小萬去了一趟那家阿里巴巴的渠道商公司,用那張收據把200塊錢換了回來。週日我們一群人去玉淵潭遊玩的時候談到這個事情,順便就把它記錄一下,同時對於這家公司服務態度的不滿,我這裡把它的公司名公布一下 北京北聯訊通科技 周一,萬總帶著收據邁著歡快的步伐走進了坐落於八里莊...