2021牛客暑期多校训练营1 G-Game of Swapping Numbers(最优解转化+贪心)
G-Game of Swapping Numbers
講題人做法
最優(yōu)解轉(zhuǎn)化:
考慮任意一個(gè)最優(yōu)解,我們把交換后的數(shù)字重新放回原來(lái)的位置,相當(dāng)于為每一個(gè)元素分配了它在答案中的符號(hào)。比如 A={0, 3}, B = {1, 2},最優(yōu)解符號(hào)分配是 A={-0,+3}, B={-1,+2}。
考察符合要求的解符號(hào)分配規(guī)則,其實(shí)只要滿(mǎn)足 A, B 中正號(hào)總和和負(fù)號(hào)總和相等,而 A、B 各自的正負(fù)號(hào)可以不一樣。
注意:有可能出現(xiàn)正負(fù)號(hào)和實(shí)際絕對(duì)值相反的情況,這樣如果不交換答案會(huì)更劣,我們求最優(yōu)解不會(huì)影響。轉(zhuǎn)化后的問(wèn)題和原問(wèn)題不完全相同,但是最優(yōu)解相同!!!
結(jié)論:n>2時(shí),恰好 k 步與至多 k 步是等價(jià)的,當(dāng) n>2 時(shí),A 中一定至少存在兩個(gè) + 號(hào)或兩個(gè) - 號(hào),此時(shí)如果我們交換這兩個(gè)符號(hào)對(duì)應(yīng)的數(shù),則并不會(huì)使得原問(wèn)題的解變得更劣。n=2 需要特殊判斷。
求最優(yōu)對(duì)換解:
考慮對(duì)于 AiA_iAi? 和AjA_jAj?,如果需要答案變優(yōu),則需要兩個(gè)區(qū)間沒(méi)有交(區(qū)間是[min?(Ai,Bi),max?(Ai,Bi)][\min(A_i,B_i),\max(A_i,B_i)][min(Ai?,Bi?),max(Ai?,Bi?)]畫(huà)畫(huà)圖即可看出),并且變優(yōu) 2×[min?(Ai,Bi)?max?(Aj,Bj)]2×[\min(A_i,B_i) - \max(A_j, B_j)]2×[min(Ai?,Bi?)?max(Aj?,Bj?)]。因此只需要將所有的 2×min?(Ai,Bi)2×\min(A_i, B_i)2×min(Ai?,Bi?) 和 2×max?(Ai,Bi)2×\max(A_i, B_i)2×max(Ai?,Bi?)排序,依次取前 kkk 大相減取和即可。
總結(jié)
以上是生活随笔為你收集整理的2021牛客暑期多校训练营1 G-Game of Swapping Numbers(最优解转化+贪心)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手机与电脑连接不上是什么原因
- 下一篇: 2021牛客暑期多校训练营1 H-Has