树带权值

#include 

using namespace std;
struct edge{
	int v,w;
}; 
vector g[100010];
int vis[100010],n,m,d,sum=0,summ[11];
int o=-1;
inline int read(){
	int f=1,x=0;char ch;
	do{
		ch=getchar();
		if(ch=='-')
		f=-1;
	}while(ch<'0'||ch>'9');
	do{
		x=x*10+ch-'0';
		ch=getchar();
	}while(ch>='0'&&ch<='9');
	return f*x;
}
void addedge(int  u,int v,int w){
	edge e1;e1.v=v;e1.w=w;
	g[u].push_back(e1);
	edge e2;e2.v=u;e2.w=w;
	g[v].push_back(e2);
}

//遍历:
void dfs(int u)
{
	o++;
	if(o>d)
		sum++;
	//printf("%d",u);
	vis[u]=1;
	for(int i=0;i

 

你可能感兴趣的:(C++)