zoukankan      html  css  js  c++  java
  • 洛谷P1525关押罪犯——并查集

    题目:https://www.luogu.org/problemnew/show/P1525

    并查集+贪心,从大到小排序,将二人分在不同房间,找到第一个不满足的即为答案。

    代码如下:

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int n,m,fa[20005],ans,ct,d[20005];
    struct N{
    	int hd,to,w;
    }edge[100005];
    bool cmp(N x,N y)
    {
    	return x.w>y.w;
    }
    int find(int x)
    {
    	if(fa[x]==x)return x;
    	else
    	{
    		int root=find(fa[x]);
    		d[x]+=d[fa[x]];
    		fa[x]=root;
    	} 
    	return fa[x];
    }
    int main()
    {
    	scanf("%d%d",&n,&m);
    	int a,b,c;
    	for(int i=1;i<=m;i++)
    	{
    		ct++;
    		scanf("%d%d%d",&edge[ct].hd,&edge[ct].to,&edge[ct].w);
    	}
    	sort(edge+1,edge+m+1,cmp);
    	for(int i=1;i<=n;i++)fa[i]=i;
    	for(int i=1;i<=m;i++)
    	{
    		int u=find(edge[i].hd);
    		int v=find(edge[i].to);
    		if(u==v&&(d[edge[i].to]-d[edge[i].hd])%2==0)//在同间 
    		{
    			ans=edge[i].w;
    			break;
    		}
    		if(u!=v)
    		{
    			fa[u]=v;
    			d[u]=d[edge[i].to]-d[edge[i].hd]+1;//dhd+du=dto+1;
    		}
    	}
    	printf("%d",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    k3d安装k3s
    python自动目录环境
    http状态码
    linux下切换jdk版本
    pycharm py代码默认模板设置
    kubectl命令
    国内安装k3s
    minikube安装
    hmac-md5
    abstract class 与 interface
  • 原文地址:https://www.cnblogs.com/Zinn/p/8439980.html
Copyright © 2011-2022 走看看