解题思路:就是一个图边的搜素,只需要搜到最长的,再从最长搜到最短就可以
注意事项:这个题不能来数组来解吧,反正我把所有数组都开了一遍;最后用了vector
参考代码:
#include<iostream> #include<vector> #include<cstring> #define N 1000000 using namespace std; vector<int>a[N]; vector<int>b[N]; bool p[N]; int l,ans=0,n; void dfs(int x,int sum) { if(sum>ans) { ans=sum; l=x; } p[x]=true; for(int i=0;i<a[x].size();i++) { if(p[a[x][i]]) continue; sum+=b[x][i]; dfs(a[x][i],sum); sum-=b[x][i]; } p[x]=false; } int main() { cin>>n; for(int i=1;i<n;i++) { int tx,ty,ts; cin>>tx>>ty>>ts; a[tx].push_back(ty); b[tx].push_back(ts); a[ty].push_back(tx); b[ty].push_back(ts); } dfs(1,0); memset(p,false,sizeof(p)); dfs(l,0); int s=0; for(int i=1;i<=ans;i++) s+=i+10; cout<<s; }
0.0分
0 人评分
简单的a+b (C语言代码)浏览:548 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:541 |
母牛的故事 (C语言代码)浏览:934 |
简单的a+b (C语言代码)浏览:693 |
【偶数求和】 (C语言代码)浏览:646 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题5.7 (Java代码)浏览:889 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:575 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1362 |
【排队买票】 (C语言代码)浏览:900 |