[HB2014 Week5] Allot 人员分配

时间:2023-02-02 21:52:15

这两天决心专门搞好网络流了 - -

题解在什么瞎胡搞跟我说要连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 人员分配的更多相关文章

  1. NEWBEE软件团队 人员分配情况及分数获得方式

    人员分配: PM:李桐  王骜 dev:王骜 刘垚鹏 安康  林旭鹏  黄新越 test:黄伟龙 李桐 马佐霖 黄新越 注:黄新越为女生,不方便平时的交流,所以任务分配较为灵活,特分在两个组里. 评分 ...

  2. 项目管理目标:添加人员并向其分配任务 - 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 ...

  3. 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则

    Part 1 团队角色分配 1.人员分配概要: Project Manager:1名 / Developer:4名 / Test: 1名 2.具体人员分配及职责: Project Manager(PM ...

  4. No&period;10&lowbar;分数分配

    C#队一共有7名成员,因此团队贡献分一共350分. 分配方式应当反映绝大部分组员的真实贡献情况,即由贡献决定分数. 另外保证一定的奖惩措施,充分调动组员的积极性,鞭策团队向前迈进. 对于团队贡献分数的 ...

  5. HR&ast;创建人员要素链接

    HRMS(Human Resource Management System) --人员 per_people_f --人员分配 per_all_assignments_f --要素 DECLARE l ...

  6. 【JeeSite】角色分配

    主要是(roleAssign.jsp , selectUserToRole.jsp )2个jsp页面的JS方法调用比较复杂,主页面要获取弹窗页面的数据 var pre_ids = h.find(&qu ...

  7. Goodbye2014,Hello2015

    正如我在研发会议上说的,总结是为了更好的计划:而计划,则是让你做事有目标,有方向:有了目标和方向,你才能真正把事情做成! 总的来说2014年可以归纳为下图: 2014年总结 一年的活动,基本可以归纳为 ...

  8. PMP备考&lowbar;第六章&lowbar;项目时间管理

    项目时间管理 前言 项目时间管理是项目管理中最难的一个环节,与个人时间管理类似,团体的效率如果管理不当,是低于个人效率的,为了管理好时间,从预估,执行到反馈均需要严格的分析和处理.如果制定的计划是无法 ...

  9. Daily Scrum02 12&period;11

    今天的会议的主要内容基本是解决界面组的问题,原本开始进行人员分配的时候没有考虑到要花特别长的时间为美化界面整理素材,且由于进行素材PS的同学的时间安排问题,和不熟练,很久没有将素材准备这项任务完成.因 ...

随机推荐

  1. POJ 3276 &lpar;开关问题&rpar;

    题目链接: http://poj.org/problem?id=3276 题目大意:有一些牛,头要么朝前要么朝后,现在要求确定一个连续反转牛头的区间K,使得所有牛都朝前,且反转次数m尽可能小. 解题思 ...

  2. 微信公众号开发中遇到的几个bug

    一.测试自定义菜单接口时中文菜单名显示为null 设置的中文菜单名,中文未经过编码和解码过程,设置的中文菜单名在最后的微信服务器返回的json格式数据中显示为null. 解决办法:将中文先用uneco ...

  3. iOS&colon;界面适配&lpar;三&rpar;--iPhone不同机型适配 6&sol;6plus 前

    转:http://blog.csdn.net/houseq/article/details/40051207 对于不同苹果设备,各个参数查看<iOS:机型参数.sdk.xcode各版本>. ...

  4. 纯css3代码写下拉菜单效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. JS基础函数

    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块 <script> function demo(){ var a = 10; var b = 25; var sum = a + ...

  6. VBA 简单调试

    在中断模式下(ctrl+Break键),可以做: 1.执行    工具----选项----编辑器----勾选“自动显示数据提示” 则当用鼠标悬停在变量或表达式上时,会出现提示窗口,显示其名称和值! 2 ...

  7. python 列表切片

    列表切片是python语言独有的特征,大大方便了我们的编码. 首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数. insert,get,set 操作均可传入负数下 ...

  8. 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础

    ---layout: posttitle: 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础key: 20180203tags: 机器学习 ML IRIS python3mo ...

  9. 内存数据库-H2简介与实践

    一.H2数据库介绍 H2数据库地址:http://www.h2database.com/html/main.html H2是一个开源的嵌入式(非嵌入式设备)数据库引擎,它是一个用Java开发的类库,可 ...

  10. Altium Designer 13 插件安装

    关键词:Altium Designer 13 :导入 Protel 99SE 很多人反应Altium Designer 13等版本无法 Protel 99SE的文件,实际上这是由于新的安装机制导致,新 ...