题目地址:http://codevs.cn/problem/1034/

代码:

type ss=recordy,c,r,next:longint;end;
const maxn=10100; maxm=100000; oo=maxlongint shr 2;
var n,m,i,j,k,l,st,ed,t1,t2,t,tot,limit,ans,augo:longint;v:array[0..30] of boolean;ee:array[0..30,0..30] of boolean;e:array[0..maxm] of ss;r,z:array[0..31] of longint;p:array[0..31,0..100] of longint;h,g,b,d:array[0..maxn] of longint;can:boolean;
procedure shi(k:longint);
var i:longint;
beginif v[k] then exit;v[k]:=true;for i:=1 to n do if ee[k,i] then shi(i);if v[n] then exit;
end;
procedure jia(x,y,c:longint);
begininc(tot); e[tot].y:=y; e[tot].c:=c; e[tot].next:=b[x]; b[x]:=tot;inc(tot); e[tot].y:=x; e[tot].next:=b[y]; b[y]:=tot;e[tot].r:=tot-1; e[tot-1].r:=tot;
end;
procedure flow(k:longint);
var i,temp:longint;
begintemp:=augo;if k=ed thenbegincan:=true;inc(ans,augo);exit;end;i:=d[k];while i<>-1 dobeginif e[i].c>0 thenbeginif h[e[i].y]+1=h[k] thenbeginif e[i].c<augo then augo:=e[i].c;flow(e[i].y);if h[st]>=limit then exit;if can then break;end;augo:=temp;end;i:=e[i].next;end;if can thenbegind[k]:=i; dec(e[i].c,augo); inc(e[e[i].r].c,augo);endelsebegind[k]:=b[k]; dec(g[h[k]]);if g[h[k]]<=0 then h[st]:=limit;inc(h[k]); inc(g[h[k]]);end;
end;
beginreadln(n,m,k);for i:=1 to m dobeginread(r[i],z[i]);for j:=0 to z[i]-1 dobeginread(p[i,j]);if p[i,j]=0 then p[i,j]:=n+1;if p[i,j]=-1 then p[i,j]:=n+2;end;for j:=0 to z[i]-1 dofor l:=0 to z[i]-1 do ee[p[i,j],p[i,l]]:=true;end;inc(n,2); shi(n-1);if not(v[n]) then writeln(0)elsebeginst:=1000; ed:=1001;fillchar(b,sizeof(b),255);jia(st,n-1,k); jia(n,ed,oo);repeatinc(t);jia(st,n-1+t*n,k); jia(n+t*n,ed,oo);for i:=1 to n do jia(i+(t-1)*n,i+t*n,oo);for i:=1 to m dobegint1:=p[i,(t-1) mod z[i]]+(t-1)*n;t2:=p[i,t mod z[i]]+t*n;jia(t1,t2,r[i]);end;limit:=(t+1)*n+2;fillchar(h,sizeof(h),0);fillchar(g,sizeof(g),0);g[0]:=limit;for i:=1 to limit do d[i]:=b[i];d[st]:=b[st]; d[ed]:=b[ed];while h[st]<limit dobegincan:=false;augo:=oo;flow(st);end;until ans>=k;writeln(t);end;
end.

codevs1034相关推荐

  1. 【codevs1034】家园——网络流

    由数据范围看是可以用网络流的... 其实还是接近于很裸的网络流,不过是变成了动态建边,图会很大,不过题目数据范围小啊... 枚举时间,自己想一个上界,cyc大佬说是100,那就100吧,到达上界前找到 ...

  2. latex c语言程序,latex中添加C++代码

    HttpClient Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Ht ...

最新文章

  1. 嵌入式 linux 进程锁,嵌入式  Linux线程锁详解pthread_mutexattr_t
  2. legend3---5、lavarel爬坑杂记
  3. matlab中reshape和repmat函数的用法
  4. matlab axb c,matlab调用C源代码(续)
  5. Java I/O体系原理
  6. 开源库 Natasha2016 ,让IL编程跑起来
  7. 一个“老”程序员的思考
  8. jpa原生query_Spring Data Jpa @Query原生SQL
  9. 开源管理系统OSSIM设置 语言为中文简体
  10. mysql管理密码修改及管理权限设定(zz)
  11. ZStack实践汇 | 高效开发测试打造产品化私有云
  12. CAD.net二次开发之图层,文字样式,标注样式,标注封装,引线的封装
  13. file_get_contents() 报错failed to open stream: HTTP request failed! HTTP/1.1 505 HTTP Version Not Supp
  14. 设计模式(一):工厂模式
  15. 四旋翼飞行器平衡传感器数据 处理方法探讨
  16. 华为OD机试 - 自动曝光(C 语言解题)【独家】
  17. 树莓派制作自己的小车车(上)
  18. 随身理财专家“挖财”推iPad应用,新增帐号对比功能
  19. 安卓 电子围栏_手机电子围栏是什么
  20. 如有定义int a=128; 则输出语句printf(“%o”,a);的输出结果为?。

热门文章

  1. 项目文件夹下的obj文件夹
  2. 将RTSP流保存为本地TS文件
  3. 【学习编程】献给迷茫中的你,教你如何快速入门编程,如何从编程小百到 IT 巨佬?零基础自学请收下这份学习指南(经验分享)
  4. OpenAI亲谈:我们眼中的GPT-3、大规模语言模型的局限性与出路在哪
  5. java并发编程 目录_Java并发编程实战的作品目录
  6. 暑假实训-3_Oracle数据库-3_单行函数
  7. 渣土车管理实施方案,运输监控管理系统介绍
  8. Java中com.jcraft.jsch.JSch讲解
  9. 图像处理大型科普——图像直方图
  10. 2022年超全的Android面经(附含面试题|进阶资料)