【問題解】P 1396救出-C++
936 ワード
原題転送ゲートという問題は基本的にクルーズカール最小生成ツリーのテンプレート問題であり、唯一異なるのは、この問題の最終目標はすべての点が接続されているのではなく、sとtが接続されている限りである.また,この問題は最小生成ツリーにおける最大エッジ重み値を求める.しかし、クルーズカールは最小の辺権値から考えられ、sとtが最初に連通したときに考えられた辺は、現在考えられている最大の権値の辺であり、直接出力すればよいのではないでしょうか.コードも簡単です.貼ってください.
#include
using namespace std;
struct noded
{
int u,v;
int w;
noded(){}
noded(int uu,int vv,int ww)
{
u=uu,v=vv,w=ww;
}
}mp[200010];
bool cmp(noded x,noded y)
{
return x.w>n>>p>>s>>t;
for(int i=1;i<=p;i++)
{
cin>>mp[i].u>>mp[i].v>>mp[i].w;
}
sort(mp+1,mp+1+p,cmp);
//for(int i=1;i<=k;i++)
//{
// cout<