ZJOI2008 泡泡堂BNB 貪心

2021-09-10 06:25:46 字數 955 閱讀 7691

題意:傳送門

題解:算浙江省最多贏多少分,用田忌賽馬,算浙江省最少得多少分,另一方用田忌賽馬,然後用2*n-ans即可,關於田忌賽馬這個貪心還是挺多坑的,想了很多才算過了。

首先我們考慮的是我要贏更多,那麼我盡量虧對方,如果我的最快的馬比他的最快的馬快,那麼直接兩個最快的馬賽一場,肯定啊,我用最快的馬不贏他最快的馬,莫不成贏他的弱馬去,然後如果我的最快的馬比他的最快的馬慢,那麼我就肯定會輸一把,不如要輸這一把,那我就耍個心眼,用個最爛的馬去和他賽,然後我贏的或平的只會不變或者增長,這就把對方坑的不行了,還有一種情況就是我的最快的馬和對方最快的相同,然後我看下兩個弱馬,如果兩個我的弱馬還比它的弱馬還如弱,既然都要輸,不如將我最弱的這匹馬和他最快的馬賽,如果我的弱馬和他的弱馬強,那麼我就用弱馬贏一場,如果此時還用弱馬和對方的強馬比,就有很大的機率失去最優解,這個點卡了我好久,太弱了,比如這個樣例:

3

10 10 5

10 10 2

具體看**:

#includeusing namespace std;

const int maxn=1e5+5;

int n;

int tianjisaima(int *z,int *d)

else if(z[r1]d[l2])elseelse if(z[l1]==d[r2])}}

}return sum;

}int main()

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

sort(z+1,z+n+1);

sort(d+1,d+n+1);

int ans1=tianjisaima(z,d);

int ans2=tianjisaima(d,z);

ans2=2*n-ans2;

printf("%d %d\n",ans1,ans2);

return 0;

}

ZJOI2008 泡泡堂題解

一道博弈論貪心題 如下 213 242 06 10000000 10000000 10000000 10000000 10000000 1000000000 000012 12我們分別稱 4 位選手為 a,b,c,d 則可能出現以下 4 種對戰方式,最好情況下可得 2 分,最壞情況下得 0 分。浙江...

BZOJ1034 ZJOI2008 泡泡堂 貪心

田忌賽馬。會做但是不會證明。把兩隊排序,從小到大一一比較,如果最小的能贏就贏,不能贏最大的能贏就贏,再不能就拿最小的去對最大的。一開始我沒有考慮最大的能贏就贏,直接犧牲最小的了,這樣做會把一些最小的能用平局得分的情況忽略了,得不到最優解。然後總得分是2n,所以第二個任務只要交換兩隊再跑一次上面的演算...

1034 ZJOI2008 泡泡堂 貪心

第 x屆noi期間,為了加強各省選手之間的交流,組委會決定組織一場省際電子競技大賽,每乙個省的代表 隊由n名選手組成,比賽的專案是老少咸宜的網路遊戲泡泡堂。每一場比賽前,對陣雙方的教練向組委會提交乙份 參賽選手的名單,決定了選手上場的順序,一經確定,不得修改。比賽中,雙方的一號選手,二號選手 n號 ...