diff --git a/src/11/3/P5022.cpp b/src/11/3/P5022.cpp index 031f96d..9722ae3 100644 --- a/src/11/3/P5022.cpp +++ b/src/11/3/P5022.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,26 +6,40 @@ #include #include #include +#include #include using ll = int64_t; const ll maxn = 5000+7; -ll n,m; -std::vector,std::greater>> e; +ll n,m,edge[maxn][2],del=-1,sum=0; +std::vector,std::greater>> e,ne; std::bitset b; - +std::vectornans,ans; +#define printf static inline void dfs(ll f,ll now){ - // printf("dfs f=%lld, now=%lld\n",f,now); - std::cout<>n>>m; e.resize(n+1); + nans.resize(n+1); + ans.resize(n+1); + b[1]=true; for(ll i=1;i<=m;i++){ ll u,v; std::cin>>u>>v; + edge[i][0]=u,edge[i][1]=v; e[u].push(v); e[v].push(u); } - dfs(0,1); + for(ll i=1;i<=m;i++)ans[i]=1e9+7; + ne=e; + if(m==n-1){ + dfs(0,1); + }else{ + for(ll i=1;i<=m;i++){ + printf("BEGIN TREE i=%lld\n",i); + e=ne; + b.reset(); + b[1]=true; + del=i; + sum=0; + dfs(0, 1); + } + for(int i=1;i<=n;i++){ + std::cout<