題目大意:給出 n
nn 個點,每個點都有點權,再給出 m
mm 個關係,以 (x,
y,z)
(x,y,z)
(x,y,z
) 的形式給出,規定如下:
同時選擇點 x
xx 和點 y
yy 將獲得 z
zz 的代價
選擇點 x
xx 或點 y
yy 將不獲得代價
同時不選擇點 x
xx 和點 y
yy 將獲得 −z-z
−z的代價
問如何選擇可以使得總代價最大
題目分析:假設把上述情況三去掉就是乙個最大權閉合子圖的裸題了,導致想了半個小時的網路流解法,雖然明知道是錯誤的但卻並沒有什麼新思路
賽後看了題解發現自己好像是之前在**見過這個模型,但是不記得了。。
正解就是初始時將答案 ans
ansan
s 賦值為 −z-z
−z之和,也就是初始時假設所有的點都不選,那麼此時將點 x
xx 和點 y
yy 的點權都增加 z
zz,此時就可以與題意契合:
同時選擇點 x
xx 和點 y
yy ,將獲得額外的 −z+
z+z=
z-z + z + z=z
−z+z+z
=z的代價
選擇點 x
xx 或點 y
yy ,將獲得 −z+
z=
0-z + z = 0
−z+z=0
的代價同時不選擇點 x
xx 和點 y
yy ,將獲得 −z-z
−z的代價
最後貪心去取就好了
**:
class
solution
};
牛客程式設計巔峰賽 共鳴問題(貪心)
現在有n個音符和m對共鳴關係,編號為1 n,每個音符自己有乙個奏響時的優美程度,共鳴關係 x,y,z 表示音符x和y同時奏響的額外優美程度是z,同時不奏響則為 z,其他情況為0。音符可以選擇奏響或者不奏響,不奏響的音符沒有優美程度。我們想知道最大的優美程度和是多少,我們不需要知道具體是哪些音符被奏響...
貪心 思維 列舉
題目大意 左括號和右括號數量相等的個數 思路 從開始列舉,用兩個標記指標,乙個記錄左括號和右括號的數量,出現乙個左括號 出現乙個右括號 出現乙個?號的話我們先把它當成右括號 所以 左括號 但是問號也要記錄下來 所以問號 當 左括號的數量為零的時候說明左括號和右括號的數量相等,所以答案加1,但是如果左...
Recovery 貪心 思維
題目傳送門 點我 題意 給你乙個10字串,1代表奇數個1,0代表偶數個1,請你還原出1最多且二進位制的值最小的矩陣。include using namespace std define max n 65 char r max n c max n 存放行jox,列jox char matrix max...