无源汇的最小费可行流。
需要清洁的管道下界为1,不需要清洁的管道下界为0。
可重复经过的管道上界为正无穷,不可重复经过的管道上界为1。
然后建图直接跑最小费用流。

AC代码:

#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
const int maxn = 233;
const int inf = 0x3f3f3f3f;
struct node{int u,v,f,w,nxt;node(){};node(int a,int b,int c,int d,int e):u(a),v(b),f(c),w(d),nxt(e){}
}e[maxn*maxn];
int cnt = 0;
int head[maxn];
void add(int u,int v,int f,int w){e[cnt] = node(u,v,f,w,head[u]);head[u] = cnt++;e[cnt] = node(v,u,0,-w,head[v]);head[v] = cnt++;
}
int st,ed,E,ex;
int n,m;
int du[maxn];
int sum;
int num = 0;
void init(){scanf("%d%d",&n,&m);st = 0;ed = n + 1;ex = n + 2;cnt = 0;sum = 0;num = 0;memset(head,-1,ex<<2);memset(du,0,ex<<2);while(m--){int u,v;char c[2];scanf("%d%d%s",&u,&v,c);if(c[0] == 'A'){add(u,v,inf,E);du[u]--;du[v]++;num+=E;}else if(c[0] == 'B'){du[u]--;du[v]++;num+=E;}else if(c[0] == 'C'){add(u,v,inf,E);}else add(u,v,1,E);}for(int i = 1;i <= n;++i){if(du[i] > 0){sum += du[i];add(st,i,du[i],0);}else if(du[i] < 0){add(i,ed,-du[i],0);}}
}
int pre[maxn];
int flow[maxn];
int inq[maxn];
int dis[maxn];
int spfa(){memset(pre,-1,ex<<2);memset(inq,0,ex<<2);memset(dis,0x3f,ex<<2);queue<int> q;q.push(st);flow[st] = inf;inq[st] = 1;dis[st] = 0;while(q.size()){int u = q.front();q.pop();inq[u] = 0;for(int i = head[u];i != -1; i = e[i].nxt){int v = e[i].v;if(e[i].f && dis[v] > dis[u] + e[i].w){dis[v] = dis[u] + e[i].w;pre[v] = i;flow[v] = min(flow[u],e[i].f);if(!inq[v]) inq[v] = 1,q.push(v);}}}if(pre[ed] == -1) return -1;return flow[ed];
}
int mfmv(){int fw = 0;int ans = 0;int d;while((d = spfa())!=-1){fw += d;ans += dis[ed]*d;int v = ed;while(v!=st){e[pre[v]].f -= d;e[pre[v]^1].f += d;v = e[pre[v]].u;}}if(fw!=sum) return -1;return ans + num;
}
void sol(){int ans = mfmv();printf("%d\n",ans);
}
int main(){int T;cin>>T;cin>>E>>E;//输入的S没有用,不管它while(T--){init();sol();}
}

CCF201812-5 管道清洁 题解(最小费可行流)相关推荐

  1. CCF201812-5 管道清洁【最小费可行流】(100分题解链接)

    试题编号: 201812-5 试题名称: 管道清洁 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 样例输入 3 0 1 4 4 1 2 A 2 3 B 3 4 C 4 1 D 5 7 ...

  2. CCF(管道清洁):最小费用最大流

    管道清洁 201812-5 需要清洁的管道下界为1, 不需要清洁的管道下界为0, 可重复经过的管道上界为正无穷, 不可重复经过的管道上界为1. 这属于无源无汇的有容量下界的最小费用可行流.解决的方法就 ...

  3. 管道清洁刷的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场管道清洁刷的发展现状及未来发展趋势,分别从生产和消费的角度分析管道清洁刷的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规格.不同规格 ...

  4. loj#115. 无源汇有上下界可行流

    \(\color{#0066ff}{ 题目描述 }\) 这是一道模板题. \(n\) 个点,\(m\) 条边,每条边 \(e\) 有一个流量下界 \(\text{lower}(e)\) 和流量上界 \ ...

  5. 【bzoj2406】矩阵 二分+有上下界可行流

    题目描述 输入 第一行两个数n.m,表示矩阵的大小. 接下来n行,每行m列,描述矩阵A. 最后一行两个数L,R. 输出 第一行,输出最小的答案: 样例输入 2 2 0 1 2 1 0 1 样例输出 1 ...

  6. POJ 2396 有上下界的可行流

    题意: 有一个n*m的方阵,里面的数字未知,但是我们知道如下约束条件: 每一行的数字的和 每一列的数字的和 某些格子有特殊的大小约束,用大于号,小于号和等于号表示 问:是否存在用正数填充这个方阵的方案 ...

  7. 【zoj2314】Reactor Cooling 有上下界可行流

    题目描述 The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuc ...

  8. 有源汇上下界最小费用可行流 ---- P4553 80人环游世界(拆点 + 有源汇上下界最小费用可行流)

    题目链接 题目大意: 解题思路: 又是一道裸题 . 首先它要求第iii个点只经过ViViVi那么我们就拆点ai,ai+na_i,a_{i+n}ai​,ai+n​一个点为入点,一个为出点这条边的流量范围 ...

  9. 有源汇上下界最小费用可行流 ---- P4043 [AHOI2014/JSOI2014]支线剧情(模板)

    题目链接 题目大意: 解题思路: 有源汇上下界最小费用可行流模板题目来着 先建出一个有源汇上下界可行流的图,然后注意建图的时候要把每条边的下界的费用提前加到ans里面 然后再对图跑费用流,就是补齐费用 ...

最新文章

  1. 面试:HashMap 夺命二十一问!鸡哥都扛不住~
  2. linux 连接远程命令行,screen命令行远程连接
  3. springboot-嵌入式Servlet容器(Tomcat)源码分析以及容器切换
  4. python控制语句第一章_【原创】Python第一章
  5. 清除被占用的8080端口,否则npm run dev无法正常运行
  6. crt无法网络连接linux开发板,securceCRT网络连接不正常解决途径
  7. “尽快成立国家级权威信息安全部门”
  8. 【Linux网络编程】原始套接字实例:发送 UDP 数据包
  9. 2018 大湾区(深圳) .NET技术分享交流会 第一期
  10. 收件服务器信息,收件服务器配置信息
  11. 微信小程序学习笔记01:微信小程序概述
  12. 【kafka】kafka topic Dump log
  13. python3及wxpythonGUI多线程防假死与线程消息传递消息(最新)
  14. BLE无线信号的调制方式
  15. 航测无人机测绘地理信息免费资料
  16. C# 关于浏览器——CefSharp篇
  17. 超短波视距通信极限距离计算公式
  18. 平面设计如何做出空间创意作品?
  19. Linux下安装google浏览器
  20. acrobat PDF删除部分_PDF编辑器Adobe Acrobat DC 2019

热门文章

  1. JAVA随笔String与基本类型转换小说明
  2. 人工智能下的智慧运维实践—运维可视化
  3. 0-1024端口号作用
  4. Less预处理——混合方法
  5. sslocal客户端运行报错
  6. python个人书吧
  7. 以《少年三国志2》为例,分析数值驱动的滚服游戏设计
  8. 中国食品级聚偏磷酸钾市场预测与投资战略报告(2022版)
  9. rust怎么建莲花房_还在傻傻的贴壁纸?用这种涂料,自动形成一朵花,太聪明了!...
  10. 蓝桥杯真题31日冲刺国一 | 每日题解报告 第十七天