长治企业网站建设价格,wordpress+免费博客平台,wordpress好的博客主题,襄阳营销型网站建设Problem - E - Codeforces
题意#xff1a; 思路#xff1a;
显然#xff0c;最大值就是什么边都不连的连通块个数#xff0c;最小值就是能连的都连上
那就是#xff0c;如果一个连通块存在度为1的点#xff0c;就把它当作接口连接
Code#xff1a;
#include b…Problem - E - Codeforces
题意 思路
显然最大值就是什么边都不连的连通块个数最小值就是能连的都连上
那就是如果一个连通块存在度为1的点就把它当作接口连接
Code
#include bits/stdc.h#define int long longusing namespace std; const int mxn2e510;int N,x;
int F[mxn],FG[mxn],sz[mxn];setint G[mxn];int find(int x){return F[x](xF[x])?x:find(F[x]);
}
void join(int u,int v){int f1find(u),f2find(v);if(f1!f2){F[f1]f2;sz[f2]sz[f1];}
}
void solve(){cinN;for(int i1;iN;i){F[i]i;sz[i]1;G[i].clear();FG[i]0;}for(int i1;iN;i){cinx;G[i].insert(x);G[x].insert(i);join(x,i);}for(int i1;iN;i){FG[find(i)]|(G[i].size()1);}int cnt0,res0;for(int i1;iN;i){if(find(i)i){res;cntFG[i];}}coutmin(res,res-cnt1) res\n;
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int __1;cin__;while(__--)solve();return 0;
}