這題主要還是分類討論尤拉迴路
首先對於導線一端沒有東西的新建乙個節點 由於原圖不一定連通所以需要用到並查集判斷有多少個連通塊 將一條導線連線的兩個焊點連線
然後先對於只有乙個連通塊考慮
1.如果乙個焊點是孤立點 它對於導線無影響跳過
2.如果乙個焊點度數大於2 它必須被燒熔
3.對於每兩對奇點 它們必須相連 這樣才滿足尤拉迴路
對於乙個連通塊處理後考慮多個連通塊,必須把他們組合在一起
1.同樣忽略孤立點
**2.如果原圖是乙個環 **
**需要找到乙個點將其燒熔,才能繼續組合 **
但其中若有焊點度數大於2,那麼它本身已經被燒熔了所以可以略去此步
最後每個連通塊向外和另一連通塊連線一根導線就組裝好了
3.原圖有鏈 這種情況下只要將一對奇點向外連就好了 當然對於程式來說就是無需考慮有鏈的連通塊連線的答案,以為這之前單個處理已經統計過了
#includeusing namespace std;
const int maxn=101005;
int tot,ans,n,m,a,b,cnt;
int d[maxn],flag1[maxn],flag2[maxn],fa[maxn];
int read()
int getfa(int x)
void conn(int x,int y)
int main()
for(int i=1;i<=n;i++)
if(d[i]>2)
}for(int i=1;i<=n;i++)
if(getfa(i)==i&&d[i])tot++;
if(tot>1) }
ans+=cnt/2;
printf("%d",ans);
return 0;
}
LOJ2330 清華集訓2017 榕樹之心
loj 感性理解一下,榕樹之心最後要停在乙個節點就是要使得它的不同子樹作用效果互相抵消,而要想使其最後停在乙個點 x 的最大困難就是如何消除重兒子的影響最好辦法就是微笑著去面對它 我們要想辦法量化這乙個過程。令 cnt i 表示 i 子樹能自行消化的對數,siz i 表示 i 子樹的大小,son i...
2011集訓隊出題 happiness
高一一班的座位表是個n m的矩陣,經過乙個學期的相處,每個同學和前後左右相鄰的同學互相成為了好朋友。這學期要分文理科了,每個同學對於選擇文科與理科有著自己的喜悅值,而一對好朋友如果能同時選文科或者理科,那麼他們又將收穫一些喜悅值。作為計算機競賽教練的scp大老闆,想知道如何分配可以使得全班的喜悅值總...
2011集訓隊出題 happiness
description 高一一班的座位表是個n m的矩陣,經過乙個學期的相處,每個同學和前後左右相鄰的同學互相成為了好朋友。這學期要分文理科了,每個同學對於選擇文科與理科有著自己的喜悅值,而一對好朋友如果能同時選文科或者理科,那麼他們又將收穫一些喜悅值。作為計算機競賽教練的scp大老闆,想知道如何分...