hdu 4587 tarjian求割點數目

2021-07-09 15:14:09 字數 735 閱讀 3827

看注釋就好了,我寫的還是比較仔細的。

//hdu 4587 tarjian 求割點

#include #include #include #include #include #define inf 0x3f3f3f3f

#define lowbit(x) ((x)&(-x))

#define maxn 20005

using namespace std;

int dfn[maxn],low[maxn],n,m,ans,head[maxn],cnt,cntt,fir,sum[maxn],tot,anss;

struct ee

eage[maxn*2];

void add(int a,int b)

void init()

void tarjian(int a,int b)

}else

low[a]=min(low[a],dfn[j]);

}if(b!=-1) //注意第乙個列舉的點由於沒有父節點要減去1,後面的節點有父節點就不用減1.

ans=max(ans,sum[a]);

else

ans=max(ans,sum[a]-1);

//printf("fir=%d a=%d sum=%d\n",fir,a,sum[a]);

}void solve()

{ for(int i=0;i

HDU 4587 邊雙聯通

題意 給你n個點,m條邊,要你刪除兩個點以及和這兩個點直接相連的邊,問你剩下的圖中,最大的連通分量的數目。分析 我們可以列舉每個點,然後看剩下的圖中是否有割點,這裡需要注意,乙個單獨的連通分量刪除就沒有了,坑點在這裡!include include include include include u...

hdu 求平均成績

假設乙個班有n n 50 個學生,每人考m m 5 門課,求每個學生的平均成績和每門課的平均成績,並輸出各科成績均大於等於平均成績的學生數量。input 輸入資料有多個測試例項,每個測試例項的第一行包括兩個整數n和m,分別表示學生數和課程數。然後是n行資料,每行包括m個整數 即 考試分數 outpu...

hdu 1394 求逆序數(線段樹求)

題意描述 給你乙個有0 n 1數字組成的序列,然後進行這樣的操作,每次將最前面乙個元素放到最後面去會得到乙個序列,那麼這樣就形成了n個序列,那麼每個序列都有乙個逆序數,找出其中最小的乙個輸出!解析 求出a1,a2,an 1,an的逆序數之後,就可以遞推求出其他序列的逆序數。假設要把a1移動到an之後...