P1650 田忌賽馬

2022-05-11 13:50:08 字數 944 閱讀 8987

我在考試的時候看到了這道題,在一瞬間就蒙逼了,這是什麼題?(請原諒我\(-250\)的智商)於是懵裡懵懂的打了個\(d\)(電)\(f\)(風)\(s\)(扇),結果連樣例都沒有過。(畢竟才學搜尋沒多久嘛,也就兩年)。再一看,看出了田忌賽馬的味道,原來是這樣!立刻打了個貪心信心滿滿的交上去。

#includeusing namespace std;

int a[514514],b[514514],n,t,k;

long long ans;

bool cmp(int x,int y)

int main()

if(a[i]!=b[k]) ans--;

k--;

}else ans++;

}cout<\(ac\)了!(那是不可能的)只拿了\(80\)分。(在洛谷是爆零的)原因?各位讀者自己推一下也就推出來了:田忌與齊王的尾指標是一樣的!而且平局時的處理也不夠。。。。。。漏洞百出,\(80\)分真是萬幸了。

好,接下來是正解了!

運用我們的老祖宗田忌的思路!

設\(la\),\(ra\)為田忌的頭,尾指標,\(lb\),\(rb\)為齊王的頭,尾指標,將兩個速度值從大到小排序,如果\(a_>b_\)那麼\(ans++\),\(la--\),\(ra--\),就是勝利了,如果尾指標也是這樣那麼同上,最重要的是平局,那麼如果\(a_\)

<\(b_\),就讓\(a_\)作為炮灰去浪費齊王的好馬。

ac**:

#includeusing namespace std;

int a[514514],b[514514],ans,n,la,lb,ra,rb,t;

int main()

else

else {if (b[lb]附帶提一下,樓上有大佬用\(dp\),但是\(dp\)的複雜度是\(o(n^2)\),但貪心是\(o(nlog^2n)\)的。如果多組資料或資料加強就過不去了,如這道題的加強版

P1650 田忌賽馬

我在考試的時候看到了這道題,在一瞬間就蒙逼了,這是什麼題?請原諒我 250 250 250 的智商 於是懵裡懵懂的打了個d dd 電 f ff 風 s ss 扇 結果連樣例都沒有過。畢竟才學搜尋沒多久嘛,也就兩年 再一看,看出了田忌賽馬的味道,原來是這樣 立刻打了個貪心信心滿滿的交上去。includ...

P1650 田忌賽馬

n 齊王和田忌各有n nn匹馬,每匹馬都有乙個強度值ai bia i b i ai bi 每次齊王和田忌要從自己的n nn匹馬中選乙個上去比賽,其中齊王總是讓馬從強到弱上 若兩匹馬強度不同,則強度高的那一方將獲得200 20020 0銀幣,若強度相同,兩方都獲得不了盈利 試著替田忌安排一種讓馬上去比...

題解 P1650 田忌賽馬

與古代田忌的應對方法差不多,現在我們任然可以用貪心的思路解答。1.田忌的馬甚至比齊王的馬快,那麼,直接將兩人最快的馬進行比賽,達到最優 2.田忌最快的馬比齊王最快的馬要慢,則與古代田忌的方案相同,用田忌最慢的馬消耗掉齊王最快的馬 3.齊王最快的馬與田忌最快的馬速度相當,又可以分成2種情況 程式 in...