蒟蒻求助T430961
  • 板块题目总版
  • 楼主o7u7o
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/3/22 16:48
  • 上次更新2024/3/22 19:20:57
查看原帖
蒟蒻求助T430961
530679
o7u7o楼主2024/3/22 16:48

全T QAQ

蒟蒻疑问:这种做法是不是O(nm)\mathcal O(nm)的?

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
const int M=2e6+5;
int nex[M],to[M],p;
int head[N],vis[N];
void add(int a,int b){
    nex[++p]=head[a];
    head[a]=p;
    to[p]=b;
}
int n;
int f[N];
void dfs(int u){
	vis[u]=1;
	for(int i=head[u];i;i=nex[i]){
		int v=to[i];
		if(!vis[v]){
			f[u]++;
			dfs(v);
		}
	}
}
int read(){
	int x=0,w=1;
	char ch=0;
	while(ch<'0' || ch>'9'){
    	if(ch=='-') w=-1;
    	ch=getchar();
	}
	while(ch>='0' && ch<='9'){
		x=(x<<3)+(x<<1)+(ch-'0');
		ch=getchar();
	}
	return x*w;
}
void write(int x){
	if(x<0){
		x=-x;
		putchar('-');
	}
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int main(){
	n=read();
	for(int i=1;i<=n-1;i++){
		int u,v;
		u=read();
		v=read();
		add(u,v);
		add(v,u);
	}
	dfs(1);
	for(int i=1;i<=n;i++){
		write(f[i]);
		putchar(' ');
	}
	return 0;
}
2024/3/22 16:48
加载中...