HDOJ 2242 考研路茫茫 空調教室

2021-07-11 04:12:46 字數 960 閱讀 1143

起初做這題想的是用強聯通圖去做,但似乎怎麼去想都沒有辦法把圖和強聯通扯上關係,因為圖中的所有邊都是雙向的,所以所有點都是一定存在於乙個強聯通圖中。後來才發現這個應該是雙聯通問題(dcc),在乙個雙聯通圖中去掉任意一條邊都不改變其聯通性,所以我們就與強聯通問題相似,把所有雙聯通分量縮點建立dag圖,再dfs搜尋求解。

#include #include #include #include #include using namespace std;

#define n 10005

#define m 20005

struct node

edge[2*m],edge1[2*m];

int head[n],tol,n,m,cnt,dfn[n],low[n],visit[n],belong[n],tol1,head1[n],val[n],val1[n],sum,min,count;

stacks;

void add(int a,int b)

void add1(int a,int b)

void tarjan(int u,int father)//tarjan找雙聯通分量進行縮點

//考慮重邊

if(!visit[v]) tarjan(v,u);

low[u]=min(low[u],low[v]);

}if(dfn[u]==low[u])

while(v!=u);

}}int dfs(int u,int father)

min=min(min,abs(sum-2*sum));

return sum;

}int main()

{ int i,a,b;

while(scanf("%d%d",&n,&m)!=eof)

{memset(head,-1,sizeof(head));

tol=cnt=0;

sum=0;

for(i=0; i

HDU 2242(考研路茫茫 空調教室)

題意 有乙個教室群,教室之間有空調管相連 原圖連通 每個教室都有人,求斷開一條空調管使之分開成兩個教室群,並且使兩個教師群的人數差值最小。思路 這題沒什麼難度吧。思路都很明了 可能是看過標籤的緣故吧0.0 求邊雙連通分量,縮點,然後進行樹形dp計數求出答案即可,貼個 以後拿來當模板用吧。includ...

hdu 2242 考研路茫茫 空調教室

題意 給乙個雙聯通圖 有重邊 每乙個節點有權值,現在要求把以一條邊去掉,使得這個圖分為兩個部分,而且要使得這兩個部分的權的差的絕對值最小 思路 1,邊 雙連通求縮點,得到一顆樹 2,簡單樹形dp 這題難倒我好久,首先是各種hash使得mle,然後就是陣列開小了,沒有注意m的值有2w 最重大錯誤就在於...

HDU 2242 考研路茫茫 空調教室

眾所周知,hdu的考研教室是沒有空調的,於是就苦了不少不去圖書館的考研仔們。lele也是其中乙個。而某教室旁邊又擺著兩個未裝上的空調,更是引起人們無限yy。乙個炎熱的下午,lele照例在教室睡覺的時候,竟然做起了空調教室的美夢。lele夢到學校某天終於大發慈悲給某個教室安上了乙個空調。而且建造了了m...