題意:將無向圖中的橋找出來,並將他們的輸入序號輸出
思路:模版找橋,但是注意處理重邊和後面的輸出,別的沒什麼了,模版題
#include #include #include #include #include #include using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const int maxn=20010; struct edge{ int to,id,num; edge(int a,int b,int c){to=a;id=b;num=c;} }; vectorG[maxn]; int L[maxn],E[maxn],ans[maxn],vis[maxn]; int n,m,k,kk; void dfs(int x,int fa){ vis[x]=1;L[x]=k;E[x]=k++; for(unsigned int i=0;iE[x]&&e.num==0) ans[kk++]=e.id; }else if(e.to!=fa) L[x]=min(L[x],E[e.to]); } } int tarjan(){ k=0;kk=0;dfs(1,1); return kk; } int main(){ int T,a,b,flag; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(int i=0;i0) printf("%d\n",ans[kk-1]); if(T) printf("\n"); } return 0; }