[HB2014 Week5] Allot 人员分配
这两天决心专门搞好网络流了 - -
题解在什么瞎胡搞跟我说要连n+2和n+1容量为无穷的边…我看了下std才做的…
坑死人的地方就是,需要求多次网络流,每次别忘了把流给清空了…这次是用链表所以专门写了一个clearflow过程,如果是静态链表就可以fillchar了…
![](/assets/blank.gif)
![](/assets/blank.gif)
program allot2; type ptype=^node;node=recordv,w,flow:longint;next:ptype;end; const maxn=400+10;inf=maxlongint; var m,n,k,i,j,x,y,l,mid,r,sta,tar:longint;head:array[1..maxn] of ptype;q,d:array[1..maxn] of longint;visit:array[1..maxn] of boolean; function min(a,b:longint):longint; beginif a>b then exit(b) else exit(a); end;procedure insert(st,ed,r:longint); var p,q,pre:ptype; begin//if (st=n+1) or (st=n+2) then r:=inf;//if (ed=n+1) or (ed=n+2) then r:=0;new(p);new(q);p^.v:=ed;p^.w:=r;p^.flow:=0;p^.next:=nil;q:=head[st];if q=nil thenbeginnew(head[st]);head[st]^:=p^;endelsebeginwhile q<>nil dobeginpre:=q;q:=q^.next;end;new(q);q^:=p^;pre^.next:=q;end; end;procedure decflow(st,ed,delta:longint); var x,y:ptype; beginy:=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; beginfillchar(visit,sizeof(visit),false);fillchar(q,sizeof(q),0);fillchar(d,sizeof(d),0);star:=1;rear:=1;q[star]:=sta;visit[sta]:=true;d[star]:=1;while star<=rear dobeginx:=q[star];y:=head[x];while y<>nil dobeginif (visit[y^.v]=false) and (y^.w>y^.flow) thenbegininc(rear);q[rear]:=y^.v;visit[y^.v]:=true;d[y^.v]:=d[x]+1;end;y:=y^.next;end;inc(star);end;bfs:=visit[tar]; end;function addflow(p,maxflow:longint):longint; var x,y:ptype;o:longint; beginif (p=tar) or (maxflow=0) then exit(maxflow);y:=head[p];addflow:=0;while y<>nil dobeginif (d[y^.v]=d[p]+1) and (y^.w>y^.flow) thenbegino:=addflow(y^.v,min(maxflow,y^.w-y^.flow));if o>0 thenbegininc(y^.flow,o);decflow(y^.v,p,o);inc(addflow,o);dec(maxflow,o);if maxflow=0 then break; //!end;end;y:=y^.next;end; end;function network:longint; beginnetwork:=0;while bfs doinc(network,addflow(sta,inf)); end;procedure clearflow; //! var i,j:longint;y:ptype; beginfor i:=1 to n+3 dobeginy:=head[i];while y<>nil dobeginy^.flow:=0;y:=y^.next;;end;end; end;beginassign(input,'allot9.in');reset(input);assign(output,'allot9.out');rewrite(output);readln(n,m,k);//build_graph;for i:=1 to m dobeginreadln(x,y,l,mid,r);insert(y,x,mid-l);insert(x,y,r-mid);end;insert(n+3,n+2,inf);insert(n+2,n+3,0);insert(n+3,n+1,inf);insert(n+1,n+3,0);//mainsta:=n+3;for i:=1 to n dobeginclearflow;tar:=i;if network>=k then writeln('1') else writeln('0');end; end.
allot
自己写网络流的时候忘记了if maxflow=0 then exit这句了,虽然不影响结果但是会影响速度。
自己电脑上跑有点慢,又不知道哪儿的OJ有…Sigh…
转载于:https://www.cnblogs.com/Sky-Grey/p/3839961.html
[HB2014 Week5] Allot 人员分配相关推荐
- 这些多项目人员分配及管理的技巧,你都知道吗?
许多企业会同时开展多个项目,项目成员通常同时活跃于数个不同的项目.因此,全面的项目资源规划在多项目管理中非常重要.相同的资源在不同的部门和不同的项目经理之间共享时,资源调度就会变得复杂. 不同项目竞争 ...
- 最大匹配 人员分配[邻接表]
Description 设有M个工人x1, x2, -, xm,和N项工作y1, y2, -, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做.由于种种原因,每个工人只能胜任其中的一 ...
- 最大匹配 人员分配[邻接矩阵]
Description 设有M个工人x1, x2, -, xm,和N项工作y1, y2, -, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做.由于种种原因,每个工人只能胜任其中的一 ...
- java - 人员分配组合
在进行体育赛事比赛的时候往往会因为对比赛队员的组合排序而烦恼, 下面程序能够帮助进行队列组合的分配. 有两个乒乓球队进行比赛,各出三人.甲队为 a,b,c 三人,乙队为 x,y,z 三人.已抽签决定比 ...
- 战队服务器人员位置,和平精英:职业战队如何分配成员位置?5大定位划出5种职位...
#百度APP&百家号杯·和平精英# 随着时间的推进,距离百家号杯的决赛越来越近了:一百只精英队伍你争我抢都想要争取冠军的宝座.在最新的一场循环赛当中SC战队以70分的总积分占领榜首,Dae战队 ...
- 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则
Part 1 团队角色分配 1.人员分配概要: Project Manager:1名 / Developer:4名 / Test: 1名 2.具体人员分配及职责: Project Manager(PM ...
- java 平均分配算法_java 分配算法
/* * 随机分配 */ public Map allotOfRandom(List users,List tasks){ Map allot=new ConcurrentHashMap(); //保 ...
- oracle ebs 采购订单 为员工分配职务,oracle—EBS-采购功能点操作手册
oracle-EBS-采购功能点操作手册 浙大软件学院学生操作手册 PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更 ...
- 一个十人开发团队的人员安排
对于一个以开发一般的商业应用软件的开发团队来讲,对于<人月神话>中提及到的外科手术队伍并不是一个值得借鉴的方法.所以在此应该对一些概念进一步进行分析. 1.效率问题:根据我们的经验数据,一 ...
最新文章
- 【Qt】在QtCreator中使用Ctrl+Shift+f快捷键打开高级查找窗口失效的解决方法
- Redis Key资源占用情况的可视化分析
- 在Python中使用正则表达式去掉字符串里的html标签
- mysql删除重复记录
- 想了解Sleuth+zipkin分布式请求链路追踪,来看看这篇文章吧!
- php pdo.dll不存在,php pdo.dll没有找到怎么办
- Pollard_rho算法+Miller_Rabin算法(大素数的判断与素因子分解)(模板)
- ES6的Proxy对象
- ubuntu apt-get 时遇到waiting for headers的破解办法
- java filter与servlet,Servlet中的Filter和Listener之间的区别(Java EE)
- python图片转excel_利用python将图片转换成excel文档格式
- selenium报错信息-- Python 中 'unicodeescape' codec can't decode bytes in position XXX: trun错误解决方案...
- cpu计算速度排行榜_中央处理器cpu性能排名
- java学习总结(16.06.28)包装类和包装类的常用方法
- Excel 条件格式查重问题
- python3爬取新浪微博_Python3爬取新浪微博头条
- Python_Cxfreeze打包exe
- Python 从 Excel 读取链接下载文件
- PPT制作和美化插件工具
- 用shell手撸容器实现批量用openssl签证书