bzoj 1061 志愿者招募 费用流
详见BYV的博客,写的非常全面https://www.byvoid.com/blog/noi-2008-employee
/**************************************************************Problem: 1061User: BLADEVILLanguage: PascalResult: AcceptedTime:1496 msMemory:1028 kb ****************************************************************///By BLADEVIL varn, m :longint;pre, other, len, cost :array[0..50010] of longint;last :array[0..2010] of longint;l :longint;source, sink :longint;ans :longint;flag :array[0..1020] of boolean;dis, que, father :array[0..1020] of longint; function min(a,b:longint):longint; beginif a>b then min:=b else min:=a; end;procedure connect(a,b,c,d:longint); begin inc(l);pre[l]:=last[a];last[a]:=l;other[l]:=b;len[l]:=c;cost[l]:=d; end;procedure init; vari :longint;x, y, z :longint;beginread(n,m);source:=n+2; sink:=source+1;x:=0;l:=1;for i:=1 to n dobeginread(y);if y-x>0 thenbeginconnect(source,i,y-x,0);connect(i,source,0,0);end elsebeginconnect(i,sink,x-y,0);connect(sink,i,0,0);end;x:=y;end;connect(n+1,sink,x,0);connect(sink,n+1,0,0);for i:=1 to m dobeginread(x,y,z);connect(x,y+1,maxlongint div 10,z);connect(y+1,x,0,-z);end;for i:=2 to n+1 dobeginconnect(i,i-1,maxlongint div 10,0);connect(i-1,i,0,0);end; end;function spfa:boolean; varh, t, cur :longint;q, p :longint; beginfilldword(dis,sizeof(dis) div 4,maxlongint div 10);que[1]:=source;dis[source]:=0;h:=0; t:=1;while t<>h dobeginh:=h mod 1010+1;cur:=que[h];flag[cur]:=false;q:=last[cur];while q<>0 dobeginp:=other[q];if len[q]>0 thenif dis[p]>dis[cur]+cost[q] thenbeginfather[p]:=q;dis[p]:=dis[cur]+cost[q];if not flag[p] thenbegint:=t mod 1010+1;que[t]:=p;flag[p]:=true;end;end;q:=pre[q];end;end;if dis[sink]=maxlongint div 10 then exit(false) else exit(true); end;procedure update; varlow, cur :longint; begincur:=sink;low:=maxlongint;while cur<>source dobeginlow:=min(low,len[father[cur]]);cur:=other[father[cur] xor 1];end;cur:=sink;while cur<>source dobegindec(len[father[cur]],low);inc(len[father[cur] xor 1],low);ans:=ans+low*cost[father[cur]];cur:=other[father[cur] xor 1];end; end;procedure main; beginwhile spfa doupdate;writeln(ans); end;begininit;main; end.
转载于:https://www.cnblogs.com/BLADEVIL/p/3485014.html
bzoj 1061 志愿者招募 费用流相关推荐
- 洛谷P3980 志愿者招募——费用流
洛谷P3980 [NOI2008]志愿者招募--费用流 题目介绍 题目描述 输入格式 输出格式 测试样例 题解 代码 题目介绍 题目描述 链接: 传送门. 申奥成功后,布布经过不懈努力,终于成为奥组委 ...
- BZOJ 1061 志愿者招募(最小费用最大流)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1061 题意:申奥成功后,布布经过不懈努力,终于 成为奥组委下属公司人力资源部门的主管.布 ...
- bzoj 1061 志愿者招募
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 3038 Solved: 1882 [ Submit] ...
- [Bzoj1061][Noi2008]志愿者招募(费用流)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1061 一开始疯狂想dp,然后队友走过来瞄一眼就告诉我像费用流,菜的真实,jpg. 一种比 ...
- BZOJ.2597.[WC2007]剪刀石头布(费用流zkw)
BZOJ 洛谷 \(Description\) 给定一张部分边方向已确定的竞赛图.你需要给剩下的边确定方向,使得图中的三元环数量最多. \(n\leq100\). \(Solution\) 这种选择之 ...
- BZOJ.3265.志愿者招募加强版(费用流SPFA)
题目链接 见上题. 每类志愿者可能是若干段,不满足那个...全幺模矩阵(全单位模矩阵)的条件,所以线性规划可能存在非整数解. 于是就可以用费用流水过去顺便拿个rank2 233. //20704kb ...
- BZOJ 3265 志愿者招募加强版 单纯形
题目大意:同1061 不过每类志愿者能工作的区间是多段 这是卡网络流?不明 总之把1061稍微改改就能过了- - #include <cmath> #include <cstdio& ...
- BZOJ 2696 航班安排 费用流
题目大意:K架飞机,N个机场,以0..N-1编号,其中0号为基地机场,每天0时刻起飞机从该机场起飞,并不晚于T时刻回到该机场.M个包机请求,每个请求为在s时刻从a机场起飞,在恰好t时刻到达b机场,可以 ...
- BZOJ 2879 美食节(费用流-动态加边)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2879 题意:有n道菜,每道菜需要b[i]份,m个厨师,第j个厨师做第i道菜需要时间a[i ...
最新文章
- 不同级域名中的 Cookie 共享
- An internal error occurred during: quot;J2EE Component Mapping Updatequot;.
- HTTPSession对象知识总结
- python程序流程控制_python流程控制
- java 封装 继承 堕胎_Java的继承、封装和多态
- BZOJ2286 : [Sdoi2011]消耗战
- npm install 卡住的时候的处理
- osgearth_annotation示例
- java 批量替换字符串_# Java 一步一步实现高逼格的字符串替换工具(二)
- restapi如何传图片_如何设计restful风格接口
- bat 调用class文件_[Golang实现JVM第五篇]静态方法调用的实现
- 红绿3d眼镜与红蓝3d眼镜区别_佩极定制眼镜青少年3D打印定制系列全新发布
- 【图像去噪】基于matlab维纳滤波图像去噪【含Matlab源码 725期】
- 多重加载Bean方式
- php api接口怎么写,php如何写api接口?
- iphone换android手机铃声,在iPhone中换个自定义铃声的11个步骤
- 计算机网络(谢希仁第七版)期末重点
- 开发指南专题六:JEECG微云快速开发平台代码生成
- matlab将图片旋转的代码_空间曲线绕空间直线旋转生成的旋转曲面方程
- 玫瑰c语言程序教程,c语言如何实现玫瑰花
热门文章
- MKcms4.4.3仿品优影视网站系统完整开源版自动采集可设置视频收费
- 城市APP集成Firebase/Admob/增强现实带PHP管理后台
- 详细介绍mysql-bin.000001文件的来源及处理方法
- pureftpd 如何修改管理员密码
- Microsoft Enterprise Library 5.0 系列(五) Data Access Application Block
- Node.js: 如何继承 events 自定义事件及触发函数
- iTerm – 让你的命令行也能丰富多彩
- 使用Google OAuth 2.0存取Google API (Google Client ID)
- PHP中MySQL、MySQLi和PDO的用法和区别
- JavaScript 字符串转换数字