poj 3228 Gold Transportation 二分+最大流

PX4 EKF2协方差矩阵‘负定’了怎么办?保姆级排查与数值稳定性修复指南 本文深入解析PX4 EKF2协方差矩阵出现‘负定’问题的原因,并提供全面的排查与修复方案。从理论分析到实践操作,详细介绍了数值稳定性危机的诊断工具、算法加固措施及工程实践中的防御性编程技巧,帮助飞控工程师有效解决滤波算法中的数值稳定性问题。 阅读详情

http://poj.org/problem?id=3228

题意:有n个城市,每个城市有一定量的金子,我们需要把所有的金子都存到城市中的仓库中,有一些道路连通这些城市,每条道路都有自己的花费,要求的是,把所有的金子都运到仓库中,所走的那些道路,其中花费的最大值最小是多少。

思路,二分答案,把花费比答案小的那些道路建成一个图,再建立一个源点和所有城市相连,流量是每个城市的金子数量,再建立一个汇点,连接所有的城市,流量是每个城市金子的最大存储量。再跑一遍最大流,如果流量等于所有的金子和,那么就可以,否则就不可以。


#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;


const int inf=1e9;
struct Side{
    int from,to,val;
}side1[20010];
struct Side2{
    int to,val,next;
}side2[40010];
int n,m;
int a[210],b[210];
int cnt,dis[210],gap[210];
int node[210],top;
int sum;


void addside(int a,int b,int c){
    side2[top]=(Side2){b,c,node[a]};
    node[a]=top++;
    side2[top]=(Side2){a,0,node[b]};
    node[b]=top++;
}


int getflow(int u,int f){
    if(u==n+1)
        return f;
    int ans=0;
    for(int i=node[u];i!=-1;i=side2[i].next){
        int to=side2[i].to,c=side2[i].val;
        if(dis[u]>dis[to]&&c){
            int x=getflow(to,min(f-ans,c));
            side2[i].val-=x;
            side2[i^1].val+=x;
            ans+=x;
            if(ans==f)  return ans;
        }
    }
    gap[dis[u]]--;
    if(gap[dis[u]]==0) dis[0]=cnt+2;
    dis[u]++;
    gap[dis[u]]++;
    return ans;
}


bool ok(int x){
    cnt=n+2;
    memset(dis,0,sizeof(dis));
    memset(gap,0,sizeof(gap));
    memset(node,-1,sizeof(node));
    gap[0]=cnt;
    top=0;
    for(int i=1;i<=n;i++){
        addside(0,i,a[i]);
        addside(i,n+1,b[i]);
    }
    for(int i=0;i<m;i++) if(side1[i].val<=x){
        addside(side1[i].from,side1[i].to,inf);
        addside(side1[i].to,side1[i].from,inf);
    }
    int ans=0;
    while(dis[0]<cnt) ans+=getflow(0,inf);
    if(ans==sum)
        return 1;
    else  return 0;
}




int main()
{    
    while(cin>>n){
        sum=0;
        if(n==0) break;
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        for(int i=1;i<=n;i++)
            scanf("%d",&b[i]);
        cin>>m;
        int x,y,z;
        int l=1e9,r=0,mid;
        for(int i=0;i<m;i++){
            scanf("%d %d %d",&x,&y,&z);
            side1[i]=(Side){x,y,z};
            l=min(l,z);
            r=max(r,z);
        }
        r++;
        int maxx=r;
        while(l!=r){
            mid=(l+r)/2;
            if(ok(mid))
                r=mid;
            else l=mid+1;
        }
        if(l==maxx)
            cout<<"No Solution"<<endl;
        else cout<<l<<endl;
    }
    return 0;
}



SAP FICO 内部往来对账功能开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行) SAP FICO 内部往来对账功能开发说明书(包括开发源代码、测试样例、FS) 阅读详情

相关推荐

SAP ABAP干货:用REUSE_ALV_GRID_DISPLAY_LVC实现ALV多屏幕独立布局(含handle参数详解)

本文详细解析了SAP ABAP中如何使用REUSE_ALV_GRID_DISPLAY_LVC函数实现ALV多屏幕独立布局,重点介绍了handle参数的技术原理和实际应用。通过变式标识符和LTDX表存储机制,开发者可以确保不同ALV报表屏幕的布局设置互不干扰,提升复杂报表场景下的用户体验。

weixin_29268267的博客 310

POJ3228- Gold Transportation (并查集+kruskal)

  Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3547   Accepted: 1262   Description Recently, a number of gold mines have been discovered in Zorr...

swust5120160705的博客 316

相衬成像介绍

相衬成像介绍

qq_41981768的博客 2912

POJ 3228Gold Transportation(二分+最大流)

题目地址:POJ3288 这个题跟之前的一道题混了,感觉是一样的,所以连想都没怎么想就拆点然后求最短路然后二分求最大流了。结果连样例都不过,还一直以为又是哪里手残了。。结果看了看样例,手算也确实不对,,。后来就没拆点,直接在原点上建的图,结果样例就过了。。然后提交1次AC。。。 后来仔细的想了想,这题是问每一段路的最短的,而不是整个的最短的。所以说不应该拆点。而我混的那道题(poj2391)是

scf0920 1239

时钟门控ICG单元的timing问题

本文探讨了数字IC设计中门控时钟(ICG)的时序收敛问题,重点分析了ICG单元在setup时序检查中易出现违例的原因及优化方法。文章指出,由于ICG单元不在时钟树平衡范围内,其时钟路径延迟通常小于后续寄存器,导致setup时序难以满足。提出的解决方案包括:1)将ICG尽量靠近受控寄存器放置;2)使用set_clock_gating_check命令加强时序约束;3)在布局阶段设置负时钟延迟;4)CTS阶段设置插入延迟。同时强调set_clock_gating_check命令对ICG单元同样有效,并介绍了ICG

u011075954的专栏 1108

Windows 11下WSL2安装CUDA避坑指南:从驱动版本匹配到环境变量配置

本文详细解析了在Windows 11的WSL2中搭建CUDA开发环境的完整流程与核心避坑要点。关键在于理解“驱动在Windows,工具链在Linux”的独特架构,并确保显卡驱动与CUDA Toolkit版本严格匹配。指南涵盖了从驱动验证、WSL-Ubuntu专用仓库安装、环境变量配置到GCC版本冲突、GPU算力不匹配等常见问题的解决方案,帮助开发者高效构建稳定的深度学习与高性能计算环境。

smartcontract5的博客 467

POJ 3228 -- Gold Transportation【二分 && 最大流】

Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3079   Accepted: 1101 Description Recently, a number of gold mines have been discovered

_阿阿阿阿欢 1014

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 842

【POJ】3228 Gold Transportation 二分+最大流or并查集

传送门:【POJ】3228 Gold Transportation 题目分析:

poursoul 1268

【超详细】MIT 液态神经网络(LNNs)——深度学习新动向

输入可以是任何形式的时间序列数据,其中表示时间。例如传感器读数、金融市场数据、语音信号等。

allein_STR的博客 2611

手把手教你安装 OpenClaw 小龙虾(MAC安装教程),一次成功不踩坑

本文详细介绍了在Mac上安装OpenClaw的完整流程。主要内容包括:1)准备工作(磁盘空间、网络环境、终端工具);2)安装Homebrew包管理器及常见问题解决;3)安装Node.js 22+版本(环境核心);4)Git安装与验证;5)OpenClaw项目克隆、依赖安装及运行配置;6)大模型配置方法(以MiniMax为例)。文章提供了详细的命令行操作步骤和常见错误解决方案,特别强调了网络环境要求和Apple Silicon芯片的原生支持注意事项。最后展示了验证配置成功的方法和资源获取渠道。

Chengbei11的博客 6340

poj 3228 Gold Transportation 【二分 + 最大流 判断是否满流】

Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3077   Accepted: 1100 Description Recently, a number of gold mines have been discovered i

世界很大 676

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Poj 3228 Gold Transportation【二分+最大流Dinic】

Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3281   Accepted: 1159 Description Recently, a number of gold mines have been discovered

mengxiang000000 581

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ 3228-Gold Transportation(网络流_最大流+二分查找)

Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2995   Accepted: 1065 Description Recently, a number of gold mines have been discover

Rocky0429 1750

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

POJ - 3228 Gold Transportation(二分+最大流 或 最小生成树)

Gold Transportation Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3661   Accepted: 1305 Description Recently, a number of gold mines have been discovered in Zorromin...

GYH0730的博客 411

POJ 3228 Gold Transportation (二分+最大流) (Dinic + 二分 或 EK)

Gold Transportation Time Limit:2000MS Memory Limit:65536K Total Submissions:2407 Accepted:858 Description Recently, a number of gold mines have been discovered...

anvt77205的博客 145

Gold Transportation(二分+最大流)

原题: http://poj.org/problem?id=3228 题意: 有n个点,m条边,每个点有一个存储量和货物量,求运输的最长路段(路径中最长的那条)的最小值,使所有货物可以存放。 解析: 首先二分答案,小于等于答案的边直接连上,流量设inf 然后源点到各个点,流量设为货物量 所有点到汇点,流量设为存储量 #include&lt;stdio.h&gt; #include&lt;iostr...

QAQ 625

poj 3228 Gold Transportation

我用的二分边长+网络流,这题也可以用枚举边长+并查集来做 对于每个有金矿的点,源点向其连一条容量为金矿数的边,对于每个仓库,向汇点连一条容量为仓库储存量的边,然后对于所有边长不大于当前枚举的值的边,连双向的容量为无穷的边 如果满流,则该枚举的边长可行,继续缩小,否则,枚举更大

scorpiocj的专栏 813

poj 3228 Gold Transportation 并查集

题意: 有n和城市和m条路,每个城市都有产生金量和收集金量,现在要把所有黄金收集,求经过的最短边是多少。 分析: 二分+最大流或用并查集合并等价类。 //poj 3228 //sep9 #include #include using namespace std; const int maxN=256; const int maxM=10024; int p[maxN],sum[maxN

sepNINE的专栏 1075

POJ - 3228:Gold Transportation 网络流 + 二分

分析 求最大值的最小值,所以就应该是用二分来做 我们可以建立一个源点和汇点,源点到每一个点的流量为每个点的黄金数量,每个点到汇点的流量为每个点的黄金储存量,然后二分距离建图,判断汇点的流量是否等于源点的流量即可 代码 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int INF = 0x3f3

tlyzxc的博客 142

poj 3228 Gold Transportation 二分+网络流

题目链接 给出n个城市, 每个城市有一个仓库, 仓库有容量限制, 同时每个城市也有一些货物, 货物必须放到仓库中。 城市之间有路相连, 每条路有长度。 因为有些城市的货物量大于仓库的容量, 所以要运到别的城市,求所有货物都放到仓库中时, 走过的路中, 最长的那条路最短的情况, 输出这条路的长度。 很容易想到二分, 如果城市之间路的长度小于二分值x, 那么两个城市之间连边, 权值为inf。 源点...

weixin_30315723的博客 128

POJ 3228 Gold Transportation

Gold Transportation Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged onPKU. Original ID:322864-bit integer IO format:%lld Java class name:Main Recently, a ...

weixin_30725467的博客 111

poj(3228)Gold Transportation

用最大流和并查集应该都可以,但不知为何,最大流老是超时,囧。。。 题意: 给出一幅无向图,有些节点有财富,有些节点有仓库。要求把所有财宝运至仓库,使经过的最大边最小。 解法: 并查集加Kruskal。将每个节点的财富处理成负值,仓库大小为正值,加起来,然后现在的目的是构成一幅森林,使所有节点的值为非负,并使经过的最大边最小。 显然的类似Kruskal的贪心,将边从小到大排序,如果较小边和比它

飞雪---晨 765
上一篇: poj 2385 Apple Catching dp
下一篇: hdu 1829 A Bug's Life 并查集
ACMer_浩
博客等级 码龄12年 0粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值