hdu 4714 Tree2cycle树上乱搞
#pragma comment(linker,"/STACk:102400000,102400000") #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<queue> #include<vector> using namespace std; vector<int> son[1000002]; int sum; int dfs(int fa,int k) { int tot=0; for(int i=0;i<son[k].size();i++) { int t=son[k][i]; if(t!=fa) { tot+=dfs(k,t); } } if(tot>=2) { if(k!=1) sum+=(tot-1)*2; else sum+=(tot-2)*2; return 0; } return 1; } int main() { int cas; int a,b,n; scanf("%d",&cas); while(cas--) { sum=0; scanf("%d",&n); for(int i=1;i<=n;i++) son[i].clear(); for(int i=1;i<n;i++) { scanf("%d%d",&a,&b); son[a].push_back(b); son[b].push_back(a); } dfs(-1,1); printf("%d\n",sum+1); } return 0; } /* 7 1 2 1 3 1 4 2 5 2 6 2 7 */
补充:软件开发 , C++ ,