2020 ICPC, Indonesia Multi-Provincial Contest


2020 ICPC, Indonesia Multi-Provincial Contest

和神仙 jzp,thecold 打力一場比賽,被帶着拿到了 38 名,下面寫下簡要題解

A. Arena of Greed

一堆金幣,兩個人輪流拿

  • 當前金幣個數是奇數,只能拿一顆
  • 當前金幣個數是偶數,可以拿一半或一顆

兩個人最優化操作,求先手獲得金幣個數最多是多少

思考一下,如果當前是奇數沒得選,不再討論,偶數就有可能選一半或一個。

如果選一半以后變成偶數,那么我就選一個,因為選一半代表着對方能拿走至少剩下石子的一半,而事實上我可以讓它更少,選一個以后對方只能選一個,這時候再選主動權就還在自己手里,對方永遠不會拿到石子的一半。

注意當 n 等於 4 的時候要特判

代碼

B. Blue and Red of Our Faculty!

給個花朵🌼一樣的圖,即中心節點是 1 號點,剩下是一些環,這些環互不相交,它們都掛在 1 號節點上。

兩個人從 1 號點開始走,每秒同時走一條邊,走過一條邊就打上標記表示不可以再次經過,直到兩人無路可走。

問方案數,兩個方案不同當且僅當兩種方案兩人的路徑集合不一樣。

這題很好想到,就是有些細節,容易發現兩人肯定在一個花瓣上相遇動彈不得,剩下的花瓣只能整片走過,所以我們枚舉它們相遇的位置,剩下的部分背包即可,背包時直接記錄兩者路徑長度之差,最后要特判在 1 號點相遇和在和 1 號點相鄰的邊處相遇的方案數。

代碼

C. Captain of Knights

暫時不會

D. Danger of Mad Snakes

所有數據都是 \(1000\) 級別的,給個地圖,上面有些龍,龍有價值 \(b_i\),你選中 m 條龍,如果一條龍切比雪夫距離 d 內有選中龍,那么它對此方案有 $b_i $的貢獻,一次選中方案的價值是所有龍貢獻和的平方。

總價值和為

\[\sum(\sum_{i \in s}b_i)^2=\sum_{}(\sum_{i=1}\sum_{j=1}[i \in s][j \in s]b_ib_j)\\ =\sum_{i=1}\sum_{j=1}b_ib_j\times S_{i,j} \]

所以我們考慮兩條龍都被選中的方案數,這個方案就是 (總方案數 - A 龍未被選中的方案數 - B 龍未被選中的方案數 + A,B 均未被選中的方案數)

利用二維前綴和就可以輕松求出了。

代碼

E. Excitation of Atoms

不想放題面了,大細節題。

容易發現 k 較大的沒有用,直接來回變把次數浪費掉即可

分類討論即可,對於 \(k = 0\),直接枚舉要激活哪個即可

對於 \(k \ge 2\),就是拿價值的總和減去前 \(n-1\) 個中最小的代價即可。可以讓最小的代價所在的點 x 指向 1 號點,讓 x - 1 指向 x + 1 ,這樣就有一條 \(x \to 1 \to x-1\to x+1\to n\) 的覆蓋所有點的路徑了,顯然最優。

對於 \(k = 1\),細節較多

  • 讓 1 號點隨便指,剩下的當 \(k=0\)
  • 選一個前綴 \(1 \to i\),讓 i 指向 1,激活 1 到 i 最小值的位置,這樣就把 \(1 \to i\) 全部消掉了,然后后綴選個最大值即可。
  • 如果 1 號點激活代價小,價值大,我們就不好舍棄它,激活一個點付出的代價太大,我們就不會激活第二個點,所以如果選 1 號點,那么除了第二種情況,也可以在中間跳一個價值小的點去

這樣就可以通過此題了。確實不易思考全面。

代碼

F. Flamingoes of Mystery

太水不說

H. Huge Boxes of Animal Toys

太水不說

I. Impressive Harvesting of The Orchard

看了看別人的 ac 代碼,清一色的全是暴力 \(\Theta(n^2)\),本機造了個極限數據,有個程序只跑了 \(2.93s\),這個故事告訴我們,暴力 yyds,考場白給了一道題/(ㄒoㄒ)/~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM