BZOJ2563 阿狸和桃子的遊戲(巧妙的貪心)

2021-08-18 12:27:36 字數 550 閱讀 9894

決定以後寫部落格還是把題意寫上 

題意:給乙個含點權和邊權的圖 兩個人輪流操作 每次選乙個點 選完後最後每個人的得分為 所有選擇點的點權 + 如果選了這條邊兩個端點的邊權 最後輸出這兩個人的分數差

題解:貪心就行。。。 把每條邊的邊權平分給包含他的兩個點,這樣如果這條邊被乙個人選了剛好就加上了這條邊的邊權,如果被兩個人選擇到了,答案剛好一減,排個序貪心, 給思路跪了。

然後注意下如果邊權為奇數 分不盡的情況 所以用double

#include #include #include using namespace std;

double q[10005];

int main()

sort(q + 1, q + 1 + n);

double ans1 = 0, ans2 = 0;

int f = 0;

for(int i = n; i >= 1; i--)

printf("%d\n", (int)(ans1 - ans2));

return 0;

}

BZOJ 2563 阿狸和桃子的遊戲

description 阿狸和桃子正在玩乙個遊戲,遊戲是在乙個帶權圖g v,e 上進行的,設節點權值為w v 邊權為c e 遊戲規則是這樣的 1.阿狸和桃子輪流將圖中的頂點染色,阿狸會將頂點染成紅色,桃子會將頂點染成粉色。已經被染過色的點不能再染了,而且每一輪都必須給乙個且僅乙個頂點染色。2.為了保...

bzoj2563 阿狸和桃子的遊戲

題目 如果只有點或邊的話,十分簡單對吧,但是,現在都有。怎麼辦呢?我們可以吧邊權分在點上,怎麼分,一般的想法就是對半分。但這樣對不對呢?感性認識,由於是算分差,如果兩個人各選了一條邊的乙個端點,沒有影響,不然的話,選了兩個端點的人能超乙個邊權。那,這樣就是對的。排序後,輕鬆解決。include us...

bzoj2563阿狸和桃子的遊戲

bzoj2563阿狸和桃子的遊戲 題意 乙個n 偶數 點圖,節點權值為w v 邊權為c e 兩人輪流將圖中的頂點染色,已經被染過色的點不能再染了,而且每一輪都必須給乙個且僅乙個頂點染色。染完後每個人的分數為染過的點權和以及兩個端點都被染的邊權和。如果兩人都是採用最優策略的,求最終第乙個人的分數減去第...