购买的机票限制和数据范围很容易想到是网络流
不难想到每个城市按时刻拆点,这也是一个经典模型
由于时间不会太大,我们穷举时间,不断在残留网络上建图,跑最大流
直至总流量为k即可

  1. const inf=;
  2. type node=record
  3. po,next,flow:longint;
  4. end;
  5.  
  6. var e:array[..] of node;
  7. a,b,c,p,numh,h,d,cur,pre:array[..] of longint;
  8. s,max,t,ans,i,n,m,k,len:longint;
  9.  
  10. function min(a,b:longint):longint;
  11. begin
  12. if a>b then exit(b) else exit(a);
  13. end;
  14.  
  15. procedure add(x,y,f:longint);
  16. begin
  17. inc(len);
  18. e[len].po:=y;
  19. e[len].flow:=f;
  20. e[len].next:=p[x];
  21. p[x]:=len;
  22. end;
  23.  
  24. procedure build(x,y,f:longint);
  25. begin
  26. add(x,y,f);
  27. add(y,x,);
  28. end;
  29.  
  30. function sap:longint;
  31. var u,i,j,tmp,neck,q:longint;
  32. begin
  33. sap:=;
  34. u:=;
  35. fillchar(numh,sizeof(numh),);
  36. fillchar(h,sizeof(h),);
  37. for i:= to max do
  38. cur[i]:=p[i];
  39. cur[t]:=p[t];
  40. numh[]:=max+;
  41. neck:=inf;
  42. while h[]<max+ do
  43. begin
  44. d[u]:=neck;
  45. i:=cur[u];
  46. while i<>- do
  47. begin
  48. j:=e[i].po;
  49. if (e[i].flow>) and (h[u]=h[j]+) then
  50. begin
  51. neck:=min(neck,e[i].flow);
  52. pre[j]:=u;
  53. cur[u]:=i;
  54. u:=j;
  55. if u=t then
  56. begin
  57. sap:=sap+neck;
  58. while u<> do
  59. begin
  60. u:=pre[u];
  61. j:=cur[u];
  62. dec(e[j].flow,neck);
  63. inc(e[j xor ].flow,neck);
  64. end;
  65. neck:=inf;
  66. end;
  67. break;
  68. end;
  69. i:=e[i].next;
  70. end;
  71. if i=- then
  72. begin
  73. dec(numh[h[u]]);
  74. if numh[h[u]]= then break;
  75. q:=-;
  76. tmp:=max+;
  77. i:=p[u];
  78. while i<>- do
  79. begin
  80. j:=e[i].po;
  81. if (e[i].flow>) then
  82. if h[j]<tmp then
  83. begin
  84. tmp:=h[j];
  85. q:=i;
  86. end;
  87. i:=e[i].next;
  88. end;
  89. h[u]:=tmp+;
  90. cur[u]:=q;
  91. inc(numh[h[u]]);
  92. if u<> then
  93. begin
  94. u:=pre[u];
  95. neck:=d[u];
  96. end;
  97. end;
  98. end;
  99. end;
  100.  
  101. begin
  102. len:=-;
  103. fillchar(p,sizeof(p),);
  104. readln(n,m,k);
  105. build(,,k);
  106. for i:= to m do
  107. readln(a[i],b[i],c[i]);
  108. t:=;
  109. ans:=;
  110. repeat
  111. for i:= to m do
  112. build(ans*n+a[i],(ans+)*n+b[i],c[i]);
  113. for i:= to n do
  114. build(ans*n+i,(ans+)*n+i,inf);
  115. build((ans+)*n+n,t,inf);
  116. max:=(ans+)*n+n;
  117. inc(ans);
  118. s:=s+sap;
  119. until s=k;
  120. writeln(ans);
  121. end.

bzoj1570的更多相关文章

  1. 【BZOJ1570】[JSOI2008]Blue Mary的旅行 动态加边网络流

    [BZOJ1570][JSOI2008]Blue Mary的旅行 Description 在一段时间之后,网络公司终于有了一定的知名度,也开始收到一些订单,其中最大的一宗来自B市.Blue Mary决 ...

  2. 【BZOJ-1570】BlueMary的旅行 分层建图 + 最大流

    1570: [JSOI2008]Blue Mary的旅行 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 388  Solved: 212[Submit ...

  3. BZOJ1570 [JSOI2008]Blue Mary的旅行

    建分层图,每一层表示一天的情况 从S向第0层的1号点连边,每层的n向T连INF的边 枚举天数,每多一天就多建一层然后跑最大流,如果当前流量大于人数则输出答案 由于路径长度不会超过n,因此tot个人走这 ...

  4. bzoj1570: [JSOI2008]Blue Mary的旅行(二分+网络流)

    1570: [JSOI2008]Blue Mary的旅行 题目:传送门 题解: get到拆点新姿势,还是做题太少了...ORZ 因为每天就只能有一个航班,那就不能直接连了,所以要拆点(然后就被卡住了) ...

  5. 【bzoj1507】 JSOI2008—Blue Mary的旅行

    http://www.lydsy.com/JudgeOnline/problem.php?id=1570 (题目链接) 题意 给出$m$个航班,每天只能做一次飞机,有$T$人从起点到终点,问最晚到达的 ...

随机推荐

  1. Java分布式处理技术(RMI,JDNI)

    http://hedaoyuan.blog.51cto.com/4639772/813702 1.1 RMI的基本概念 1.1.1 什么是RMI RMI(Remote Method Invocatio ...

  2. windows 定时任务

    创建定时任务 创建定时任务,时间间隔为1min,开始时间为04:00:00,任务名称为backupSchedule,运行当前目录下的copyData.bat脚本 schtasks /create /s ...

  3. 注册dll

    unit Unit1; interface uses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...

  4. use mkisofs 重新打包beini,tinycore linux

    mkisofs -r -J -V Beini-Custom -v --boot-info-table --boot-load-size 4 -b boot/isolinux/isolinux.bin ...

  5. Codevs 1690 开关灯 USACO

    1690 开关灯 USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description YYX家门前的街上有N(2<=N& ...

  6. What is the Xcopy Command?:

    Quote from: http://pcsupport.about.com/od/commandlinereference/p/xcopy-command.htm The xcopy command ...

  7. jsp a标签传值到action中,action接收不到传值

    因为需求,今天在action中加了一个marker属性,尝试了很多方法 set,get方法也生成了,但是就接收不到值. 这时我注意到action中有我之前使用ajax请求数据返回json格式数据,不以 ...

  8. ASP.Net大文件上传组件详解

    首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...

  9. Spring框架的初步学习

    (1) IOC 控制反转 所谓的控制反转就是应用本身不负责依赖对象的创建和维护,依赖对象的创建及维护是由 外部容器负责的(spring是外部容器之一).这样控制权就由应用转移到了外部容器,控制权 的转 ...

  10. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...