当前位置: 首页 > news >正文

网络流与线性规划24题 做题笔记

网络流太弱了,练一手。

餐巾规划问题

显然白天晚上是要分开建点的,同时为了保证最大流的要求,所以每个白天点都要向汇点连一条容量 \(r_i\),费用为 0 的边。同时,由于你还要买毛巾,所以要从源点向每个白天点连一条容量不限、费用为 \(p\) 的边。

考虑由于每天会制造出 \(r_i\) 个脏毛巾,所以源点要向晚上点补偿性的连一条容量为 \(r_i\),费用为 0 的边。同时,延迟洗毛巾、快洗店、慢洗店三种情况也都是从晚上点连出去的,比较容易,就不说了。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=4005,M=12*N;
int n,cst,ta,csa,tb,csb;
struct mcmf{int s,t,k,h[N],d[N];int to[M],nx[M],f[M],w[M];int vis[N],dis[N],vs[N];queue<int>q;inline void init(int fs,int ed){memset(h,0,sizeof(h)),k=1,s=fs,t=ed;}inline void add(int x,int y,int v,int cs){f[++k]=v,w[k]=cs,to[k]=y,nx[k]=h[x],h[x]=k;f[++k]=0,w[k]=-cs,to[k]=x,nx[k]=h[y],h[y]=k;}inline int spfa(){while(q.size()) q.pop();for(int i=s;i<=t;i++) vs[i]=0,dis[i]=1e18;q.push(s),d[s]=h[s],dis[s]=0;while(q.size()){int x=q.front();q.pop(),vis[x]=0,d[x]=h[x],vs[x]=1;for(int i=h[x];i;i=nx[i]){if(dis[to[i]]<=dis[x]+w[i]||!f[i]) continue;dis[to[i]]=dis[x]+w[i];if(!vis[to[i]]) vis[to[i]]=1,q.push(to[i]);}}return vs[t];}inline int dfs(int x,int ans){if(x==t) return ans;int sum=ans;vis[x]=1;for(int i=d[x];i&&sum;i=nx[i]){d[x]=i;if(dis[x]+w[i]>dis[to[i]]||!f[i]||vis[to[i]]) continue;int num=dfs(to[i],min(sum,f[i]));f[i]-=num,f[i^1]+=num,sum-=num;}return vis[x]=0,ans-sum;}inline int dinic(){int mnc=0;while(spfa()) mnc+=dfs(s,1e18)*dis[t];return mnc;}
}fee;
signed main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n,fee.init(0,n*2+1);for(int i=1,r;i<=n;i++)cin>>r,fee.add(0,i+n,r,0),fee.add(i,n*2+1,r,0);cin>>cst>>ta>>csa>>tb>>csb;for(int i=1;i<=n;i++){fee.add(0,i,1e14,cst);if(i+ta<=n) fee.add(i+n,i+ta,1e14,csa);if(i+tb<=n) fee.add(i+n,i+tb,1e14,csb);if(i<n) fee.add(i+n,i+n+1,1e14,0);}cout<<fee.dinic();return 0;
}
http://www.jsqmd.com/news/379314/

相关文章:

  • 2026年广州格拉苏蒂原创手表维修推荐榜单:非官方维修点甄选与售后网点服务评测 - 十大品牌推荐
  • 2026年广州法穆兰手表维修推荐榜单:非官方维修点评测与售后网点选择指南 - 十大品牌推荐
  • 计算机Java毕设实战-基于SpringBoot+Vue的宿舍报修系统的设计与实现基于Springboot宿舍报修维护系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026年广州东方双狮手表维修推荐评测:非官方维修网点服务榜单与避坑指南 - 十大品牌推荐
  • 2026年广州法穆兰手表维修推荐榜单:非官方维修网点服务评测与选择指南 - 十大品牌推荐
  • 2026年广州公司搬家服务评测推荐:告别搬迁烦恼的优选榜单深度解析 - 十大品牌推荐
  • 计算机Java毕设实战-基于springboot的留守儿童关爱网站首页展示、宣传新闻、志愿活动、爱心捐赠【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026年广州蒂芙尼手表维修推荐评测:非官方维修网点服务与售后选择指南 - 十大品牌推荐
  • BZOJ-1594 [Usaco2008 Jan] 猜数游戏 题解
  • 【课程设计/毕业设计】基于Spring Boot的大学生就业服务平台的设计与实现基于springboot的龙岗区在线就业推荐平台的设计与实现【附源码、数据库、万字文档】
  • 看空期权的买入场景
  • 2026年广州格拉苏蒂原创手表维修推荐榜单:非官方维修点甄别与全国核心城市服务网点评测 - 十大品牌推荐
  • 网络里访问控制到底该让三层交换机的ACL干,还是交给防火墙?
  • 【课程设计/毕业设计】基于Springboot的宿舍维修管理系统基于Springboot宿舍报修维护系统【附源码、数据库、万字文档】
  • BZOJ-1594 [Usaco2008 Jan]猜数游戏 题解
  • 2026年2月13日
  • 上海春申驾校联系方式:关于驾培选择的通用提醒 - 十大品牌推荐
  • 2026年广州东方双狮手表维修评测推荐:非官方维修网点服务榜单与避坑指南 - 十大品牌推荐
  • Apache Flume 入门到实战:构建可靠的大素材采集管道
  • 多模态 RAG 系统实战教程(非常详细),手把手教你从零搭建!
  • 2026年最适合程序员的十大Linux发行版,哪个能真正能提升生产力
  • 久韵红家具联系方式:实地考察家具生产的实用提醒 - 十大品牌推荐
  • Java毕设项目:基于springboot的留守儿童关爱网站(源码+文档,讲解、调试运行,定制等)
  • 大模型与知识图谱融合教程(非常详细),核心路线图全解析!
  • 2026广东最新燕窝/燕窝礼盒供货商首选推荐格妃燕府(广东君诚药业):源头把控,这家品牌用品质赢得信赖 - 品牌推荐2026
  • P1347 排序
  • LangGraph 多 Agent 协同实战教程(非常详细),新闻 AI 审查系统(含源码)!
  • 深度解读.NET中ConcurrentDictionary:高效线程安全字典的原理与应用 - 教程
  • 寒假16
  • Java毕设项目:基于Springboot宿舍报修维护系统(源码+文档,讲解、调试运行,定制等)