标签:tco scan dde err iframe highlight arch node pat
xxxxxxxxxx
using namespace std;
struct edge{
int to,dis,next;
edge(){}
edge(const int &_to,const int &_dis,const int &_next){
to=_to,dis=_dis,next=_next;
}
}e[maxn<<1];
int head[maxn],k;
inline void add(const int &u,const int &v,const int &w){
e[k]=edge(v,w,head[u]);
head[u]=k++;
}
int dep[maxn],n,s,sum;//dep[i]表示根到i的距离
void dfs(int u,int pre){
for(register int i=head[u];~i;i=e[i].next){
int v=e[i].to;
if(v==pre) continue;
dfs(v,u);
dep[u]=max(dep[u],dep[v]+e[i].dis);
}
}
int main(){
memset(head,-1,sizeof head);
scanf("%d %d",&n,&s);
for(register int i=1;i<n;i++){
int u,v,w;
scanf("%d %d %d",&u,&v,&w);
add(u,v,w),add(v,u,w);
sum+=w;
}
dfs(s,0);
printf("%d\n",sum*2-dep[s]);
return 0;
}
xxxxxxxxxx
using namespace std;
struct edge{
int to,dis,next;
edge(){}
edge(const int &_to,const int &_dis,const int &_next){
to=_to,dis=_dis,next=_next;
}
}e[maxn<<1];
int head[maxn],k;
inline void add(const int &u,const int &v,const int &w){
e[k]=edge(v,w,head[u]);
head[u]=k++;
}
int f[maxn],len,n,s,sum;
void dp(int u,int pre){
for(register int i=head[u];~i;i=e[i].next){
int v=e[i].to;
if(v==pre) continue;
dp(v,u);
len=max(len,f[u]+f[v]+e[i].dis);
f[u]=max(f[u],f[v]+e[i].dis);
}
}
int main(){
memset(head,-1,sizeof head);
scanf("%d %d",&n,&s);
for(register int i=1;i<n;i++){
int u,v,w;
scanf("%d %d %d",&u,&v,&w);
add(u,v,w),add(v,u,w);
sum+=w;
}
dp(1,0);
printf("%d\n",sum*2-len);
return 0;
}
标签:tco scan dde err iframe highlight arch node pat
原文地址:https://www.cnblogs.com/akura/p/10804334.html