bzoj 3280: 小R的烦恼 (网络流)
和开发计划一样(数组开太小wa了好多次,然后为什么这么慢?
- type
- arr=record
- toward,next,cap,cost:longint;
- end;
- const
- maxm=;
- maxn=;
- var
- edge:array[..maxm]of arr;
- dist,first,sch,a,new,old,p,slack:array[..maxn]of longint;
- chose:array[..maxn]of boolean;
- maxcost,maxflow,n,s,t,tot,esum,i,tt,sum,jj:longint;
- function min(x,y:longint):longint;
- begin
- if x<y then exit(x);
- exit(y);
- end;
- procedure add(i,j,k,l:longint);
- begin
- inc(esum);
- edge[esum].toward:=j;
- edge[esum].next:=first[i];
- first[i]:=esum;
- edge[esum].cap:=k;
- edge[esum].cost:=l;
- end;
- procedure addedge(i,j,k,l:longint);
- begin
- add(i,j,k,l);
- add(j,i,,-l);
- end;
- procedure into;
- var
- n,m1,m2,i,j,k,cost1,time:longint;
- begin
- readln(n,m1,m2);
- fillchar(first,sizeof(first),);
- esum:=-;
- for i:= to m1 do sch[i]:=i;
- tot:=m1;
- for i:= to n do begin
- inc(tot);
- new[i]:=tot;
- inc(tot);
- old[i]:=tot;
- end;
- inc(tot);
- s:=tot;
- inc(tot);
- t:=tot;
- for i:= to n do begin
- read(a[i]);
- inc(sum,a[i]);
- end;
- for i:= to m1 do begin
- read(j,p[i]);
- addedge(s,sch[i],j,);
- end;
- for i:= to n do begin
- addedge(s,old[i],a[i],);
- for j:= to m1 do
- addedge(sch[j],new[i],a[i],p[j]);
- addedge(new[i],t,a[i],);
- end;
- for i:= to m2 do begin
- read(time,cost1);
- for j:= to n-time do
- for k:=j+time+ to n do
- addedge(old[j],new[k],maxlongint,cost1);
- end;
- end;
- function aug(x,flow:longint):longint;
- var
- now,more,i,too,value:longint;
- begin
- if x=t then begin
- inc(maxflow,flow);
- inc(maxcost,dist[s]*flow);
- exit(flow);
- end;
- // writeln(x);
- i:=first[x];
- chose[x]:=true;
- now:=;
- while i>= do begin
- too:=edge[i].toward;
- value:=edge[i].cost;
- if (edge[i].cap>) and (not chose[too]) then
- if dist[x]=dist[too]+value then begin
- more:=aug(too,min(edge[i].cap,flow-now));
- dec(edge[i].cap,more);
- inc(edge[i xor ].cap,more);
- inc(now,more);
- if flow=now then exit(flow);
- end
- else
- slack[too]:=min(slack[too],dist[too]+value-dist[x]);
- i:=edge[i].next;
- end;
- exit(now);
- end;
- function rel:boolean;
- var
- i,spent:longint;
- begin
- spent:=maxlongint;
- for i:= to tot do
- if not chose[i] then spent:=min(spent,slack[i]);
- if spent=maxlongint then exit(false);
- for i:= to tot do
- if chose[i] then inc(dist[i],spent);
- exit(true);
- end;
- begin
- readln(tt);
- for jj:= to tt do begin
- sum:=;
- into;
- fillchar(dist,sizeof(dist),);
- maxcost:=;
- maxflow:=;
- repeat
- for i:= to tot do slack[i]:=maxlongint;
- repeat
- fillchar(chose,sizeof(chose),false);
- until aug(s,maxlongint)<=;
- until not rel;
- write('Case ',jj,': ');
- if sum=maxflow then writeln(maxcost)
- else writeln('impossible');
- end;
- end.
bzoj 3280: 小R的烦恼 (网络流)的更多相关文章
- BZOJ 3280: 小R的烦恼 & BZOJ 1221: [HNOI2001] 软件开发
3280: 小R的烦恼 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 399 Solved: 200[Submit][Status][Discuss ...
- bzoj 3280: 小R的烦恼 费用流
题目: Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的,程设老师最近要进行一项 ...
- BZOJ 3280: 小R的烦恼
Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...
- 【BZOJ】【3280】小R的烦恼
网络流/费用流 和软件开发那题基本相同,只是多加了一个“雇佣研究生”的限制:不同价格的研究生有不同的数量…… 那么只需加一个附加源点,对每一种研究生连边 S->ss 容量为l[i],费用为p[i ...
- BZOJ3280: 小R的烦恼
题解: 随便建一下图费用流就可以过吧... 代码: #include<cstdio> #include<cstdlib> #include<cmath> #incl ...
- 【BZOJ3280】小R的烦恼 最小费用最大流
[BZOJ3280]小R的烦恼 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的 ...
- BZOJ_3280_小R的烦恼_最小费用最大流
BZOJ_3280_小R的烦恼_最小费用最大流 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难 ...
- bzoj3280: 小R的烦恼(最小费用最大流)
Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难题.问题是这样的,程设老师最近要进行一项邪恶的实 ...
- 【bzoj3280】小R的烦恼 费用流
题目描述 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的,程设老师最近要进行一项邪恶的实验来证明P=N ...
随机推荐
- LeetCode:36. Valid Sudoku(Medium)
1. 原题链接 https://leetcode.com/problems/valid-sudoku/description/ 2. 题目要求 给定一个 9✖️9 的数独,判断该数独是否合法 数独用字 ...
- Asp.net Web Api开发Help Page 添加对数据模型生成注释的配置和扩展
在使用webapi框架进行接口开发的时候,编写文档会需要与接口同步更新,如果采用手动式的更新的话效率会非常低.webapi框架下提供了一种自动生成文档的help Page页的功能. 但是原始版本的效果 ...
- spring-boot、mybatis整合
一.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 X ...
- WPF Style Setter use a TemplateBinding?
<Style TargetType="{x:Type local:ImageButton}"> <Setter Property="Horizontal ...
- C# 调用webserver 出现:未能从程序集“jgd3jufm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型
一般都是 用的动态调用webserver,然后这次用的是固定的 首先 最后 实例化改接口,然后直接传值调用
- Qt-QML-Slider-滑块-Style-后继
首先了,先把我上篇文章的demo准备好,不过我上次写的被我删除了,这次就重新写了一个,上代码 import QtQuick 2.5 import QtQuick.Controls 1.4 import ...
- Linux命令应用大词典-第34章 打印与传真
34.1 lpr:打印文件 34.2 lpq:显示打印队列状态 34.3 lprm:取消打印作业 34.4 lpstat:显示cups状态信息 34.5 cupsaccept:接受作业发送到目的地 3 ...
- 剑指offer-从上往下打印二叉树22
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom( ...
- PHP正则相关
描述字符串排列模式的一种自定义语法规则 如果可以使用字符串函数处理的任务 就不要使用正则 正则表达式 就是通过构建具有特定规则的模式,与输入的字符信息比较 在进行 分割 匹配 查找 替换 等工作 ...
- 水管工游戏:dfs(递归)
添柴网这题好想不能评测,所以不确保代码的正确性 题目描述: 这小节有点难,看不太懂可以跳过哦.最近小哼又迷上一个叫做水管工的游戏.游戏的大致规则是这样的.一块矩形土地被分为N * M的单位正方形,现在 ...