[HB2014 Week5] Allot 人员分配
这两天决心专门搞好网络流了 - -
题解在什么瞎胡搞跟我说要连n+2和n+1容量为无穷的边…我看了下std才做的…
坑死人的地方就是,需要求多次网络流,每次别忘了把流给清空了…这次是用链表所以专门写了一个clearflow过程,如果是静态链表就可以fillchar了…
program allot2;
type ptype=^node;
node=record
v,w,flow:longint;
next:ptype;
end;
const maxn=+;
inf=maxlongint;
var m,n,k,i,j,x,y,l,mid,r,sta,tar:longint;
head:array[..maxn] of ptype;
q,d:array[..maxn] of longint;
visit:array[..maxn] of boolean;
function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end; procedure insert(st,ed,r:longint);
var p,q,pre:ptype;
begin
//if (st=n+) or (st=n+) then r:=inf;
//if (ed=n+) or (ed=n+) then r:=;
new(p);new(q);
p^.v:=ed;p^.w:=r;p^.flow:=;p^.next:=nil;
q:=head[st];
if q=nil then
begin
new(head[st]);
head[st]^:=p^;
end
else
begin
while q<>nil do
begin
pre:=q;q:=q^.next;
end;
new(q);
q^:=p^;
pre^.next:=q;
end;
end; procedure decflow(st,ed,delta:longint);
var x,y:ptype;
begin
y:=head[st];
while y^.v<>ed do y:=y^.next;
y^.flow:=y^.flow-delta;
end; function bfs:boolean;
var star,rear,x:longint;
y:ptype;
begin
fillchar(visit,sizeof(visit),false);
fillchar(q,sizeof(q),);
fillchar(d,sizeof(d),);
star:=;rear:=;q[star]:=sta;visit[sta]:=true;d[star]:=;
while star<=rear do
begin
x:=q[star];
y:=head[x];
while y<>nil do
begin
if (visit[y^.v]=false) and (y^.w>y^.flow) then
begin
inc(rear);
q[rear]:=y^.v;
visit[y^.v]:=true;
d[y^.v]:=d[x]+;
end;
y:=y^.next;
end;
inc(star);
end;
bfs:=visit[tar];
end; function addflow(p,maxflow:longint):longint;
var x,y:ptype;
o:longint;
begin
if (p=tar) or (maxflow=) then exit(maxflow);
y:=head[p];addflow:=;
while y<>nil do
begin
if (d[y^.v]=d[p]+) and (y^.w>y^.flow) then
begin
o:=addflow(y^.v,min(maxflow,y^.w-y^.flow));
if o> then
begin
inc(y^.flow,o);
decflow(y^.v,p,o);
inc(addflow,o);
dec(maxflow,o);
if maxflow= then break; //!
end;
end;
y:=y^.next;
end;
end; function network:longint;
begin
network:=;
while bfs do
inc(network,addflow(sta,inf));
end; procedure clearflow; //!
var i,j:longint;
y:ptype;
begin
for i:= to n+ do
begin
y:=head[i];
while y<>nil do
begin
y^.flow:=;
y:=y^.next;;
end;
end;
end; begin
assign(input,'allot9.in');reset(input);
assign(output,'allot9.out');rewrite(output);
readln(n,m,k);
//build_graph;
for i:= to m do
begin
readln(x,y,l,mid,r);
insert(y,x,mid-l);
insert(x,y,r-mid);
end;
insert(n+,n+,inf);insert(n+,n+,);
insert(n+,n+,inf);insert(n+,n+,);
//main
sta:=n+;
for i:= to n do
begin
clearflow;
tar:=i;
if network>=k then writeln('') else writeln('');
end;
end.
allot
自己写网络流的时候忘记了if maxflow=0 then exit这句了,虽然不影响结果但是会影响速度。
自己电脑上跑有点慢,又不知道哪儿的OJ有…Sigh…
[HB2014 Week5] Allot 人员分配的更多相关文章
- NEWBEE软件团队 人员分配情况及分数获得方式
人员分配: PM:李桐 王骜 dev:王骜 刘垚鹏 安康 林旭鹏 黄新越 test:黄伟龙 李桐 马佐霖 黄新越 注:黄新越为女生,不方便平时的交流,所以任务分配较为灵活,特分在两个组里. 评分 ...
- 项目管理目标:添加人员并向其分配任务 - Project
已剪辑自: https://support.office.com/zh-cn/article/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9B%AE%E6%A0%8 ...
- 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则
Part 1 团队角色分配 1.人员分配概要: Project Manager:1名 / Developer:4名 / Test: 1名 2.具体人员分配及职责: Project Manager(PM ...
- No.10_分数分配
C#队一共有7名成员,因此团队贡献分一共350分. 分配方式应当反映绝大部分组员的真实贡献情况,即由贡献决定分数. 另外保证一定的奖惩措施,充分调动组员的积极性,鞭策团队向前迈进. 对于团队贡献分数的 ...
- HR*创建人员要素链接
HRMS(Human Resource Management System) --人员 per_people_f --人员分配 per_all_assignments_f --要素 DECLARE l ...
- 【JeeSite】角色分配
主要是(roleAssign.jsp , selectUserToRole.jsp )2个jsp页面的JS方法调用比较复杂,主页面要获取弹窗页面的数据 var pre_ids = h.find(&qu ...
- Goodbye2014,Hello2015
正如我在研发会议上说的,总结是为了更好的计划:而计划,则是让你做事有目标,有方向:有了目标和方向,你才能真正把事情做成! 总的来说2014年可以归纳为下图: 2014年总结 一年的活动,基本可以归纳为 ...
- PMP备考_第六章_项目时间管理
项目时间管理 前言 项目时间管理是项目管理中最难的一个环节,与个人时间管理类似,团体的效率如果管理不当,是低于个人效率的,为了管理好时间,从预估,执行到反馈均需要严格的分析和处理.如果制定的计划是无法 ...
- Daily Scrum02 12.11
今天的会议的主要内容基本是解决界面组的问题,原本开始进行人员分配的时候没有考虑到要花特别长的时间为美化界面整理素材,且由于进行素材PS的同学的时间安排问题,和不熟练,很久没有将素材准备这项任务完成.因 ...
随机推荐
- Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
有3个对象,对象A,对象B,对象C.他们的实体关系为: 1.A中存在List<B>和List<C>,即一个包含另外两个: 2.A中存在List<B>,B中存在Lis ...
- vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...
- android sdcard信息获取
手机存储都有两种,一种是 手机自带的存储,称为internal storage,另外一种用户额外插入的存储,称为removable storage (也就是外置sdcard的部分). removabl ...
- [问题2014S02] 解答
[问题2014S02] 解答 首先注意到: 两个实系数多项式 \(f(x),g(x)\) 互素当且仅当 \(f(x),g(x)\) 在复数域 \(\mathbb{C}\) 上没有共公根, 当且仅当结 ...
- jQuery表单元素非空验证
<script type="text/javascript"> $(function(){ /************* ...
- opengl视图变换 投影变换推导
视图变换在opengl中,视图变换的输入是:(1)眼睛位置(或者说相机位置)eys:(2)眼睛朝向的中心center,(就是眼睛朝哪里看);(3)头的方向up.任何一点经过视图变换后都会转化到眼睛坐标 ...
- git 临时记录
http://blog.csdn.net/wangbole/article/details/8552808 http://blog.csdn.net/gq414047080/article/detai ...
- abort终止正在进行中的的ajax请求
核心:调用XMLHttpRequest对象上的abort方法 jQuery的ajax方法有自己的超时时间设置参数: $.ajax({type:'POST', url:'b.php', data:' ...
- 深入理解CSS网页布局-理论篇
在CSS网页开发布局中,需要对浮动和定位有深刻的理解才能在开发中游刃有余. 基于此,在博客园中做了本篇总结,这些总结来自实践经验和阅读一些书籍后的理解总结,主要内容为浮动,清除浮动,定位. (可点击屏 ...
- SE78、SWM0
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...