NOIP 2010 三國遊戲

2021-07-24 07:32:10 字數 1326 閱讀 3589

題目描述

小涵很喜歡電腦遊戲,這些天他正在玩乙個叫做《三國》的遊戲。

在遊戲中,小涵和計算機各執一方,組建各自的軍隊進行對戰。遊戲中共有 n 位武將(n為偶數且不小於 4),任意兩個武將之間有乙個「默契值」,表示若此兩位武將作為一對組合作戰時,該組合的威力有多大。遊戲開始前,所有武將都是自由的(稱為自由武將,一旦某個自由武將被選中作為某方軍隊的一員,那麼他就不再是自由武將了),換句話說,所謂的自由武將不屬於任何一方。

遊戲開始,小涵和計算機要從自由武將中挑選武將組成自己的軍隊,規則如下:小涵先從自由武將中選出乙個加入自己的軍隊,然後計算機也從自由武將中選出乙個加入計算機方的軍隊。接下來一直按照「小涵→計算機→小涵→……」的順序選擇武將,直到所有的武將被雙方均分完。然後,程式自動從雙方軍隊中各挑出一對默契值最高的武將組合代表自己的軍隊進行二對二比武,擁有更高默契值的一對武將組合獲勝,表示兩軍交戰,擁有獲勝武將組合的一方獲勝。

已知計算機一方選擇武將的原則是盡量破壞對手下一步將形成的最強組合,它採取的具體策略如下:任何時刻,輪到計算機挑選時,它會嘗試將對手軍隊中的每個武將與當前每個自由武將進行一一配對,找出所有配對中默契值最高的那對武將組合,並將該組合中的自由武將選入自己的軍隊。 下面舉例說明計算機的選將策略,例如,遊戲中一共有 6 個武將,他們相互之間的默契值如下表所示:

雙方選將過程如下所示:

小涵想知道,如果計算機在一局遊戲中始終堅持上面這個策略,那麼自己有沒有可能必勝?如果有,在所有可能的勝利結局中,自己那對用於比武的武將組合的默契值最大是多少? 假設整個遊戲過程中,對戰雙方任何時候均能看到自由武將隊中的武將和對方軍隊的武將。為了簡化問題,保證對於不同的武將組合,其默契值均不相同。

【題目分析】

排序。【**】

#include 

using

namespace

std;

int main()

; for(int i=1;i<=n;i++)

for(int j=i+1;j<=n;j++)

for(int i=1;i<=n;i++)

else mx2=max(f[i][j],mx2);

mx3=max(mx2,mx3);

} }

cout

<<1

0; }

NOIP2010 三國遊戲

題目描述 description 小涵很喜歡電腦遊戲,這些天他正在玩乙個叫做 三國 的遊戲。在遊戲中,小涵和計算機各執一方,組建各自的軍隊進行對戰。遊戲中共有 n 位武將 n為偶數且不小於 4 任意兩個武將之間有乙個 默契值 表示若此兩位武將作為一對組合作戰時,該組合的威力有多大。遊戲開始前,所有武...

NOIP2010 普及組複賽 第四題 三國遊戲

題目描述description 小涵很喜歡電腦遊戲,這些天他正在玩乙個叫做 三國 的遊戲。在遊戲中,小涵和計算機各執一方,組建各自的軍隊進行對戰。遊戲中共有 n 位武將 n為偶數且不小於 4 任意兩個武將之間有乙個 默契值 表示若此兩位武將作為一對組合作戰時,該組合的威力有多大。遊戲開始前,所有武將...

NOIP2010pj三國遊戲 博弈論

小涵很喜歡電腦遊戲,這些天他正在玩乙個叫做 三國 的遊戲。在遊戲中,小涵和計算機各執一方,組建各自的軍隊進行對戰。遊戲中共有 n 位武將 n為偶數且不小於 4 任意兩個武將之間有乙個 默契值 表示若此兩位武將作為一對組合作戰時,該組合的威力有多大。遊戲開始前,所有武將都是自由的 稱為自由武將,一旦某...