比赛 20160902 评测结果 EEEEEEEEEE
题目名称 距离 最终得分 0
用户昵称 Shirry 运行时间 1.554 s
代码语言 C++ 内存使用 49.11 MiB
提交时间 2016-09-02 21:46:09
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int m,n;
int visited[10005]={0};
int a[4000][4000]={0};
int King=0,num=0,QAQ=0;
int DFSTraverse(int i){
	visited[i]=1;
	if(i==King)QAQ=num;
	for(int j=1;j<=n;j++){
		if(a[i][j]>=1&&visited[j]==0){
			num=num+a[i][j];
			DFSTraverse(j);
			num=num-a[i][j];
		}
	}
	return num;
}
int main(){
	freopen ("distance.in","r",stdin);
	freopen ("distance.out","w",stdout);
	cin>>n>>m;
	int a1,b1,c1;
	for(int p=1;p<=n-1;p++){
		cin>>a1>>b1>>c1;
		a[a1][b1]=c1;
		a[b1][a1]=c1;
	}
	int i,j;
	for(int p=1;p<=m;p++){
		num=0;
		QAQ=0;
		cin>>i>>j;
		King=j;
		DFSTraverse(i);
		cout<<QAQ<<endl;
		for(int k=1;k<=n;k++)visited[k]=0;
	}
	return 0;
}