[LUOGU] P2330 [SCOI 2005] 바 쁜 도시
C , , 。 C : n , , 。 , 。 , , 。 , , :
1. 。
2. 1 , 。
3. 1、2 , 。
: , , 。
:
n,m n ,m 。 m ,u, v, c u v , c。(1≤n≤300,1≤c≤10000,1≤m≤50000)
:
s, max, , 。
#1:
4 5
1 2 3
1 4 5
2 4 7
2 3 6
3 4 8
#1:
3 6
제목 의 뜻 이 약간 복잡 하고 교차점 은 바로 노드 이기 때문에 모든 점 의 합 이 가장 작은 것 은 나 무 를 만 드 는 것 이다. 변 수 는 반드시 n - 1 개 이 고 가장 긴 한 변 만 찾 으 면 된다.
//Writer:GhostCai && His Yellow Duck
#include
#include
#define MAXN 200000
using namespace std;
int m,n,ans;
int fa[MAXN];
int fnd(int x){
if(fa[x]==x) return x;
return fa[x]=fnd(fa[x]);
}
void cat(int x,int y){
x=fnd(x);y=fnd(y);
if(x!=y) fa[y]=x;
}
struct Edge{
int x,y,w;
}e[MAXN];
int ecnt;
inline void add(int x,int y,int w){
e[++ecnt].y = y;
e[ecnt].x = x;
e[ecnt].w = w;
}
bool cmp(const Edge x,const Edge y){
return x.w < y.w ;
}
int main(){
cin>>n>>m;
int x,y,w;
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++){
cin>>x>>y>>w;
add(x,y,w);
}
sort(e+1,e+1+ecnt,cmp);
int t=0;
for(int i=1;i<=m;i++){
int v=e[i].y ,u=e[i].x ;
v=fnd(v);u=fnd(u);
if(v!=u){
cat(u,v);
ans=max(e[i].w,ans);
++t;
}
if(t==n-1) break;
}
cout<1<<" "<return 0;
}
다음으로 전송:https://www.cnblogs.com/ghostcai/p/9247505.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.