参考博客https://blog.csdn.net/u013534123/article/details/97142191

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+50;
int S,T,From[maxn],Laxt[maxn],Next[maxn],To[maxn];
ll Cap[maxn],cnt;
int vd[maxn],dis[maxn];
void add(int u,int v,ll c){
Next[++cnt]=Laxt[u];Laxt[u]=cnt;To[cnt]=v;Cap[cnt]=c;From[cnt]=u;
Next[++cnt]=Laxt[v];Laxt[v]=cnt;To[cnt]=u;Cap[cnt]=0;From[cnt]=v;
}
ll sap(int u,ll flow,int limit){
if(u==T||flow==0)return flow;
ll tmp,delta=0;
for(int i=Laxt[u];i;i=Next[i]){
int v=To[i];
if(dis[u]==dis[v]+1&&Cap[i]){
tmp=sap(v,min(flow-delta,Cap[i]),limit);
Cap[i]-=tmp;Cap[i^1]+=tmp;delta+=tmp;
if(dis[S]>=limit||delta==flow)return delta;
}
}
vd[dis[u]]--;if(!vd[dis[u]])dis[S]=limit;
vd[++dis[u]]++;
return delta;
}
void init(int limit){
cnt=1;
for(int i=0;i<=limit;i++)Laxt[i]=dis[i]=vd[i]=0;
}
int main(){
std::ios::sync_with_stdio(false);
int n,m;
while(cin>>n>>m){
init(n+2);
S=0,T=n+1;
ll ans=0;
for(int i=1;i<=m;i++){
ll u,v,a,b,c;
cin>>u>>v>>a>>b>>c;
ans+=(a+b+c)*2;
add(u,T,a/4+4*c/3);
add(v,T,a/4+4*c/3);
add(S,u,5*a/4+c/3);
add(S,v,5*a/4+c/3);
add(u,v,c/3+a/2);
add(v,u,c/3+a/2);
}
ll pp=0;
while(dis[S]<n+2){
pp+=sap(S,1e9,n+2);
}
cout<<(ans-pp)/2<<endl;
}
return 0;
}

2019HDU多校赛第二场 H HDU 6598 Harmonious Army(最小割模型)的更多相关文章

  1. Hdu 6598 Harmonious Army 最小割

    N个人 每个人可以是战士/法师  M个组合 每个组合两个人 同是战士+a 同是法师+c 否则+b 对于每一个u,v,a,b,c 建(S,u,a) (u,v,a+c-2*b) (v,T,c) (S,v, ...

  2. 2015 多校赛 第二场 1006 (hdu 5305)

    Problem Description There are n people and m pairs of friends. For every pair of friends, they can c ...

  3. 2015 多校赛 第二场 1004 hdu(5303)

    Problem Description There are n apple trees planted along a cyclic road, which is L metres long. You ...

  4. 2015 多校赛 第二场 1002 (hdu 5301)

    Description Your current task is to make a ground plan for a residential building located in HZXJHS. ...

  5. 可持久化线段树的学习(区间第k大和查询历史版本的数据)(杭电多校赛第二场1011)

    以前我们学习了线段树可以知道,线段树的每一个节点都储存的是一段区间,所以线段树可以做简单的区间查询,更改等简单的操作. 而后面再做有些题目,就可能会碰到一种回退的操作.这里的回退是指回到未做各种操作之 ...

  6. SCNU省选校赛第二场B题题解

    今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...

  7. 2015 多校赛 第一场 1007 (hdu 5294)

    总算今天静下心来学算法.. Description Innocent Wu follows Dumb Zhang into a ancient tomb. Innocent Wu’s at the e ...

  8. hdu多校第二场1008(hdu6598) Harmonious Army 最小割

    题意: 一个军队有n人,你可以给他们每个人安排战士或者法师的职业,有m对人有组合技,组合技的信息是a,b,c,代表如果这两个人是两个战士,则组合技威力为a,一个战士一个法师,威力为b,其中b=a/4+ ...

  9. [2019杭电多校第二场][hdu6598]Harmonious Army(最小割)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6598 题意是说一个军队有n人,你可以给他们每个人安排战士或者法师的职业,有m对人有组合技,组合技的信息 ...

随机推荐

  1. ubuntu18.04系统桌面很卡 换回16.04桌面

    https://jingyan.baidu.com/article/37bce2bea3c07f1002f3a22a.html

  2. 20165213 Exp 8 Web基础

    Exp 8 Web基础 一.基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器 ...

  3. 安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效

    前言 最近写TypeScript需要安装.配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中).打开系统终端敲入命令 no ...

  4. ThinkPhp中验证码不显示和配置项的问题解决方法

    1.验证码不显示在调用验证码之前加上 ob_clean();像这样: public function verify(){ ob_clean(); $verify = new \Think\Verify ...

  5. 开源运维自动化平台-opendevops

    开源运维自动化平台-opendevops 简介 官网 | Github|  在线体验 CODO是一款为用户提供企业多混合云.自动化运维.完全开源的云管理平台. CODO前端基于Vue iview开发. ...

  6. list元素按照日期排序

    private static void ListSort(List<AppClassInfoVo> list) { Collections.sort(list, new Comparato ...

  7. windows驱动程序

    官网文档 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/

  8. oracle设置默认值无效

    一次做农行的项目,在向一个表插入数据时我们要求插入字符类型的操作日期和时间,我们这边当时采取的是给日期和时间字段设置默认值的方法:下面我简单还原一下当时的表结构 -- Create table cre ...

  9. 自定义一个数组对象工具demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer的差别和分别什么时候用

    System.Windows.Forms.Timer.System.Timers.Timer.System.Threading.Timer的 区别和用法http://space.itpub.net/1 ...