解题思路:
注意事项:
参考代码:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1000010;
int e[N],ne[N],h[N],w[N],g[N],l[N],a,b,c,d,n,m,idx,ans,x,y,z;
void add(int a,int b,int c)
{
l[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int dfs(int t)
{
if(g[t]!=0x3f3f3f3f)
{
return g[t];
}
for(int i=h[t];~i;i=ne[i])
{
g[t]=min(g[t],max(dfs(e[i]),dfs(l[i]))+max(w[l[i]],w[e[i]]));
}
return g[t];
}
int main()
{
cin>>a>>b>>c>>d;
memset(h,-1,sizeof h);
for(int i=1;i<=a;i++)
{
cin>>w[i];
g[i]=0x3f3f3f3f;
}
for(int i=1;i<=b;i++)
{
cin>>x;
g[x]=0;
}
for(int i=1;i<=c;i++)
{
cin>>x>>y>>z;
add(z,x,y);
}
ans=dfs(d);
cout<<ans<<endl;
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:597 |
校门外的树 (C语言代码)浏览:988 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
简单的for循环浏览:1496 |
简单的a+b (C语言代码)浏览:674 |
WU-整数平均值 (C++代码)浏览:1307 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:583 |
矩阵加法 (C语言代码)浏览:1768 |
循环入门练习5 (C语言代码)浏览:907 |
C二级辅导-分段函数 (C语言代码)浏览:659 |