DTOJ 4740. 校運會

題意

SSSZZX 的校運會又開始了。

高一 XX 班的同學們組成了一個由 nn 名同學構成的代表隊。運動會一共設 mm 個運動項目,每名同學只能報名最多一個項目,每個項目每個班級也只能報名最多一名同學。

高一 XX 班的體育委員收集了代表隊所有名同學的期望參賽項目和預估參賽成績。預估參賽成績分爲 KK 檔,從第 11 名到第 KK 名。同學們只願意參加上報的比賽項目。

體育委員把收集的數據交給了你,你需要提供一個報名方案,使得在滿足比賽規則和同學要求的情況下,使獲得第一名的選手最多。如果兩個方案獲得第一名的選手一樣多,則希望獲得第二名的選手最多。以此類推,直到第KK名。

對於 20%20\% 的數據,1n,m101K101\le n,m\le 10,1\le K\le 10.

對於另外 20%20\% 的數據,K=1K=1.

對於 100%100\% 的數據,1n,m1000,1K10,ki10000,1kim,1xijm,1yijK1\le n,m\le 1000,\, 1\le K\le 10,\,\sum{k_i}\le 10000,\, 1\le k_i\le m,\, 1\le x_{ij}\le m,\, 1\le y_{ij}\le K.

題解

顯然是二分圖的模型,考場上想的是把邊權按照1000進賦值,然後取跑費用流,但需要開兩個long long存邊權,寫到自閉了。
其實考慮一下一個匹配被替換的時候,最多在左右兩邊的點各多一個匹配,而如果有排名由於原來匹配的肯定更優,否則最多就是兩個排名多1的匹配,所以邊權直接賦值爲上一個*2+1即可。
注意本題應跑的是最大費用可行流,而不是最大流。
以及spfa等號的時候不要更新,會死循!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章