首页 > 其他分享 >秘密的牛奶运输

秘密的牛奶运输

时间:2023-03-16 14:15:39浏览次数:48  
标签:运输 牛奶 int res 秘密 bool 权值 include dis

/*
    求次小生成树的思路
     先把最小生成树建出来,再对这个树进行dfs,得到任意两点之间所经过的边中权值最大的边的权值dis[][]。
   依次枚举每条非树边,得到点a,b,权值w,判断这条边的权值w,是否大于dis[a][b],如果大于就进行更新判断
*/


#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;

const int N=510,M=1e4+10;

typedef long long ll;
int n,m;
int h[N],e[N*2],w[N*2],ne[N*2],idx;
int dis[N][N];

struct node{
    int a,b,w;
    bool fg;
    bool operator<(const node&W)const
    {
        return w<W.w;
    }
}edge[M];

int p[N];

void add(int a,int b,int c)
{
    e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}

int find(int x)
{
    if(x!=p[x]) p[x]=find(p[x]);
    return p[x];
}
void dfs(int u,int fa,int maxv,int d[])
{
    d[u]=maxv;
    for(int i=h[u];~i;i=ne[i])
    {
        int j=e[i];
        if(j==fa) continue;
        dfs(j,u,max(w[i],maxv),d);
    }
}

int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++) p[i]=i;
    for(int i=0;i<m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        edge[i]={a,b,c};
    }
    
    sort(edge,edge+m);
    
    ll sum=0;
    memset(h,-1,sizeof h);
    
    for(int i=0;i<m;i++)
    {
        int a=edge[i].a,b=edge[i].b,w=edge[i].w;
        a=find(a),b=find(b);
        if(a!=b)
        {
            p[a]=b;
            sum+=w;
            edge[i].fg=true;//标记这条边是树边
            add(a,b,w),add(b,a,w);//把最小生成树建出来
        }
    }
    
    for(int i=1;i<=n;i++) dfs(i,-1,0,dis[i]);//得到从i到其他任意点的的边权中的最大值
    
    ll res=1e18;
    
    for(int i=0;i<m;i++)
    {
        if(!edge[i].fg)
        {
            int a=edge[i].a,b=edge[i].b,w=edge[i].w;
            if(w>dis[a][b])
            res=min(res,sum-dis[a][b]+w);
        }
    }
    
    printf("%lld",res);
    
    return 0;
}

 

标签:运输,牛奶,int,res,秘密,bool,权值,include,dis
From: https://www.cnblogs.com/tolter/p/17222318.html

相关文章

  • 工业控制应用程序二进制的秘密
    ​ 本文系原创,转载请说明出处 PleaseSubscribeWechatOfficialAccount:信安科研人,获取更多的原创安全资讯源码:https://github.com/momalab/ICSREF原论文:ICSREF:A......
  • 芯片工艺的5nm和7nm是怎么来的?揭开芯片工艺和摩尔定律背后的“秘密”
    1:摩尔定律1965年,硅谷传奇,仙童“八叛徒”之一,英特尔原首席执行官和荣誉主席,伟大的规律发现者戈登·摩尔正在准备一个关于计算机存储器发展趋势的报告。在他开始绘制数据时......
  • 优思学院|SOP,精益六西格玛管理中的秘密武器!
    什么是SOP?SOP的要素有哪些?SOP,全称为StandardOperatingProcedure,也就是标准操作规程。简单来说,SOP是一份指导性文件,它详细记录了特定任务的具体操作步骤和要求,以确保该任务......
  • 罗小黑的秘密—wp—青少年CTF
    题目的附件安装相关工具在Linux中使用命令安装gem:apt-getinstallgem在Linux中使用命令安装zsteg:geminstallzsteg这是一道图片隐写题,可以在Linux中......
  • 第五章 运输层
    5.1运输层概述运输层是计算机网络体系结构中的第四层,主要负责端到端的数据传输和控制。它是在网络层(第三层)和应用层(第七层)之间的中间层,可以为应用层提供多种服务,例如可靠......
  • 国际物流中各运输条款、贸易条款定义
    运输条款CY-CY场到场(containeryardtocontaineryard):从起运地或装箱港的集装箱装卸区堆场运出,到目的地或卸箱港的集装箱堆场;交接方式为FCL-FCL,CY-CY集装箱运输条......
  • 盖瑞特商用车领域的领先技术推动天然气长途运输车辆市场的发展
    GarrettMotionInc.盖瑞特领先的双流道涡轮设计实现了最佳的尾气流分离,从而提高燃烧效率,同时引入电动化技术,提高了涡轮增压器的响应和控制能力。随着汽车制造商认识并充分......
  • 拨开迷雾 看见vivo穿越周期的秘密
    文|智能相对论作者|佘凯文任何一个行业都有周期性,就好像我们在做股票投资的时候,提到最多的就是周期规律,因为只有掌握规律才可以让我们赚到钱。所以不论是哪家公司都逃脱不了......
  • 2023年1月牛奶乳品电商数据分析(电商平台销量排行)
    随着人们消费能力的提升以及健康意识的增强,牛奶乳品已经成为居民日常饮食中的重要组成部分,伴随人们整体消费的增长,牛奶乳品行业也越来越成熟。今年1月份我国牛奶乳品行业的......
  • 细胞与外界之间的物质运输
    自由扩散:H2O、CO2、O2、甘油和乙醇等小分子物质协助扩散:H2O(水主要通过此种方式进出细胞),以及葡萄糖进出红细胞和肌细胞。协助扩散可能是通道蛋白,也可能是载体蛋白。有时钠......