hdu 5438 Ponds(拓撲應用 DFS)

2021-07-05 07:20:06 字數 470 閱讀 9031

題目大意:

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搜尋看看每乙個連線的池塘數是不是...