還是裸的樹的重心,只不過這個要求將所有的重心都輸出。很簡單。 代碼如下:
#include #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define pi acos(-1.0) //#pragma comment(linker, /STACK:1024000000) #define root 1, n, 1 #define lson l, mid, rt<<1 #define rson mid+1, r, rt<<1|1 const int mod=1e9+7; const int INF=0x3f3f3f3f; const double eqs=1e-9; const int MAXN=50000+10; struct node { int v, next; } edge[MAXN<<1]; int head[MAXN], cnt, min1, n, num; int sum[MAXN], ans[MAXN]; void add(int u, int v) { edge[cnt].v=v; edge[cnt].next=head[u]; head[u]=cnt++; } void init() { memset(head,-1,sizeof(head)); cnt=0; min1=INF; } void dfs(int u, int fa) { int max1=0, i, tot=0; sum[u]=1; for(i=head[u]; i!=-1; i=edge[i].next) { int v=edge[i].v; if(v==fa) continue ; dfs(v,u); sum[u]+=sum[v]; max1=max(max1,sum[v]); tot+=sum[v]; } max1=max(max1,n-tot-1); if(min1>max1) { min1=max1; num=0; ans[num++]=u; } else if(min1==max1) { ans[num++]=u; } } int main() { int u, v, i; while(scanf(%d,&n)!=EOF) { init(); for(i=1; i
1 POCO 中的 SocketPOCO 中有
Java客戶端上傳圖片(文件)到c++服務器主要思路:將所有
題目: A robot is located at
詭異的樓梯Time Limit: 2000/10
智能指針就是智能,自動化地管理指針所指向的動態資源的釋放,那
區間DP: 將一個多邊形三角剖分,讓可以得到的最大三角形