求问(听灌多)
  • 板块灌水区
  • 楼主xzz_cat6
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/20 10:00
  • 上次更新2024/6/20 10:02:22
查看原帖
求问(听灌多)
773813
xzz_cat6楼主2024/6/20 10:00
void dfs(int u,int f){
	for(int i=head[u];i;i=e[i].nxt){
		int v=e[i].to;
		if(v==f)	continue;
		dfs(v,u);
		size[u]+=size[v];
	}
}
void dfs(int u,int f){
	int cnt=0;
	for(int i=head[u];i;i=e[i].nxt){
		int v=e[i].to;
		if(v==f)	continue;
		dfs(v,u);
		a[++cnt]=dp[v]; 
	}
	for(int i=1;i<=cnt;i++){
		int v=e[i].to;
		if(v==f)	continue;
		dp[u]=calc(dp[u],a[i]);
	}
}
void dfs(int u,int f){
	int cnt=0;
	for(int i=head[u];i;i=e[i].nxt){
		int v=e[i].to;
		if(v==f)	continue;
		dfs(v,u);
		a[++cnt]=dp[v]; 
	}
	sort(a+1,a+cnt+1);
	for(int i=1;i<=cnt;i++){
		int v=e[i].to;
		if(v==f)	continue;
		dp[u]=calc(dp[u],a[i]);
	}
}

求这三份树上操作的时间复杂度,节点数为n,calc为时间复杂度是常数的函数。

2024/6/20 10:00
加载中...