題目大意:
p個池塘 m個連同渠
p個池塘的價值
m個連通渠的u與v
小於兩個連同渠的池塘去掉。
找到剩餘的連通的池塘,並且只加連通的池塘的總個數為奇數個的連通塊的價值。
詳見**(寫的很繁瑣很差勁,哎,但還是分享下吧。):
#include#include#include#include#includeusing namespace std;
const int n=10000+10;
vectorsumdu[n];
long long int sumvalue,tempvalue;
int node[n];
int nodedegree[n];
int p,m;
bool nodeflog[n];
int jo;
void solve()
for(int i=0;i
HDU 5438 Ponds 拓撲找環 dfs
題意 略思路 用拓撲找環的方法,o n 把度數為1 跟其相連的點小於2 的點去掉,並標記,那樣剩下一些環,然後dfs找每個環的權值和 和 環中結點的個數 將點個數為偶數的環去掉 其實這樣做的話可以直接計算 有奇數個點的環的權值 include include include include incl...
hdu5438(拓撲排序 dfs)
題意 p個頂點m條邊的無向圖,每個頂點有乙個權值,現在要刪除所有的葉子節點,重複此操作直至形成的 森林 中不存在葉子節點,然後找出森林中頂點個數為奇數的樹的權值的和。思路 模擬拓撲排序,每個點每連一條邊,我讓它的度數就加2,所有度數為2的點入隊,然後把這些點所連的邊刪掉,即跟它相關聯的點的度數減去2...
hdu5438 拓撲排序 dfs
題意就是現在有一片池塘,池塘之間符合無向圖的關係,每個池塘都有乙個權值。現在要刪去那些入度小於二的點,然後計算在剩下的池塘中,連線的池塘數為奇數的池塘總和。嗯,當初讀題半天沒讀懂,把樣例的資料畫一下就很清晰了。思路就是 先用拓撲排序篩選那些入度小於2的池塘,然後dfs搜尋看看每乙個連線的池塘數是不是...