2929: [Poi1999]洞穴攀行

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 80  Solved: 41
[Submit][Status][Discuss]

Description

一队洞穴学者在Byte Mountain的Grate Cave里组织了一次训练。训练中,每一位洞穴学者要从最高的一个室到达最底下的一个室。他们只能向下走。一条路上每一个连续的室都要比它的前一个低。此外,每一个洞穴学者都要从最高的室出发,沿不同的路走到最低的室。问:可以有多少个人同时参加训练?
 
任务:
写一个程序:
l        读入对洞穴的描述。
l         计算可以同时参加训练的人数。
l         将结果输出。
 

Input

 
第一行有一个整数n(2<=n<=200),等于洞穴中室的个数。用1~n给室标号,号码越大就在越下面。最高的室记为1,最低的室记为n。以下的n-1行是对通道的描述。第I+1行包含了与第I个室有通道的室(只有比标号比I大的室)。这一行中的第一个数是m,0<=m<=(n-i+1),表示被描述的通道的个数。接着的m个数字是与第I个室有通道的室的编号。
 

Output

 
输出一个整数。它等于可以同时参加训练的洞穴学者的最大人数。
 

Sample Input

12
4 3 4 2 5
1 8
2 9 7
2 6 11
1 8
2 9 10
2 10 11
1 12
2 10 12
1 12
1 12

Sample Output

3

HINT

 

Source

题解:网络流模板题么么哒。。。(PS:其实我一开始看成求路径数了= =);
  1. /**************************************************************
  2. Problem:
  3. User: HansBug
  4. Language: Pascal
  5. Result: Accepted
  6. Time: ms
  7. Memory: kb
  8. ****************************************************************/
  9.  
  10. type
  11. point=^node;
  12. node=record
  13. g,w:longint;
  14. next,anti:point;
  15. end;
  16. var
  17. i,j,k,l,m,n,s,t,ans:longint;
  18. a:array[..] of point;
  19. d,dv:array[..] of longint;
  20. function min(x,y:longint):longint;
  21. begin
  22. if x<y then min:=x else min:=y;
  23. end;
  24. function max(x,y:longint):longint;
  25. begin
  26. if x>y then max:=x else max:=y;
  27. end;
  28. procedure add(x,y,z:longint);
  29. var p:point;
  30. begin
  31. new(p);p^.g:=y;p^.w:=z;p^.next:=a[x];a[x]:=p;
  32. new(p);p^.g:=x;p^.w:=;p^.next:=a[y];a[y]:=p;
  33. a[x]^.anti:=a[y];a[y]^.anti:=a[x];
  34. end;
  35. function dfs(x,flow:longint):longint;
  36. var p:point;k:longint;
  37. begin
  38. if x=t then exit(flow);
  39. dfs:=;p:=a[x];
  40. while p<>nil do
  41. begin
  42. if (p^.w<>) and (d[x]=(d[p^.g]+)) then
  43. begin
  44. k:=dfs(p^.g,min(flow-dfs,p^.w));
  45. if p^.w<>maxlongint then dec(p^.w,k);
  46. if p^.anti^.w<>maxlongint then inc(p^.anti^.w,k);
  47. inc(dfs,k);
  48. if dfs=flow then exit;
  49. end;
  50. p:=p^.next;
  51. end;
  52. if d[s]=n then exit;
  53. dec(dv[d[x]]);
  54. if dv[d[x]]= then d[s]:=n;
  55. inc(d[x]);inc(dv[d[x]]);
  56. end;
  57. begin
  58. readln(n);s:=;t:=n;
  59. for i:= to n- do
  60. begin
  61. read(l);
  62. for j:= to l do
  63. begin
  64. read(k);
  65. if (i=s) or (k=t) then add(i,k,) else add(i,k,maxlongint);
  66. end;
  67. readln;
  68. end;
  69. fillchar(d,sizeof(d),);fillchar(dv,sizeof(dv),);dv[]:=n;ans:=;
  70. while d[s]<n do inc(ans,dfs(s,maxlongint));
  71. writeln(ans);
  72. readln;
  73. end.

2929: [Poi1999]洞穴攀行的更多相关文章

  1. BZOJ 2929: [Poi1999]洞穴攀行

    2929: [Poi1999]洞穴攀行 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 351  Solved: 195[Submit][Status][ ...

  2. bzoj 2929 [Poi1999]洞穴攀行 网络流

    2929: [Poi1999]洞穴攀行 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 499  Solved: 295[Submit][Status][ ...

  3. 【BZOJ】2929: [Poi1999]洞穴攀行(最大流)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2929 题意描述不清..搞得我wa了一发.. 应该是,有1和n的点的边容量都为1,其余随便... 然后 ...

  4. bzoj2929 [Poi1999]洞穴攀行

    Description 一队洞穴学者在Byte Mountain的Grate Cave里组织了一次训练.训练中,每一位洞穴学者要从最高的一个室到达最底下的一个室.他们只能向下走.一条路上每一个连续的室 ...

  5. 【bzoj2929】[Poi1999]洞穴攀行 网络流最大流

    题目描述 洞穴学者在Byte Mountain的Grate Cave里组织了一次训练.训练中,每一位洞穴学者要从最高的一个室到达最底下的一个室.他们只能向下走.一条路上每一个连续的室都要比它的前一个低 ...

  6. 【最大流】【Dinic】bzoj2929 [Poi1999]洞穴攀行

    TMD 题意其实是与1或n相连的边只能走一次,其他可以走无限次……翻译去死. 裸最大流. #include<cstdio> #include<cstring> #include ...

  7. BZOJ-2929 洞穴攀岩 最大流Dinic(傻逼题)

    竟然没有1A真羞耻...1分钟不到读完题,10分钟不到打完....MD没仔细看...WA了一遍,贱! 2929: [Poi1999]洞穴攀行 Time Limit: 1 Sec Memory Limi ...

  8. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  9. jquery轮播图详解,40行代码即可简单解决。

    我在两个月以前没有接触过html,css,jquery,javascript.今天我却在这里分享一篇技术贴,可能在技术大牛面前我的文章漏洞百出,也请斧正. 可以看出来,无论是div+css布局还是jq ...

随机推荐

  1. Raphael的Braille例子

    Raphael的Braille例子: 注意里面的split(' ')方法,竟然会split出来空元素: <%@ page language="java" contentTyp ...

  2. Spring内部bean无法通过id获取

    内部Bean注入正常,但是直接在context中getBean是得不到的: <?xml version="1.0" encoding="UTF-8"?&g ...

  3. loadrunner controller:集合点策略

    集合点只有在多用户并发运行的时候才能体现它的作用. Scenario ---> Rendezvous 打开集合点设置界面,如下图所示: 我们可以看到Vusers 列表框里有两个用户,这与我们设置 ...

  4. 棒!使用.NET Core构建3D游戏引擎

    原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...

  5. js如何判断一个变量是否是数组?

    //方法一 var arr = [1,2,3]; var obj = {'name': 'xiaoming','age': 19}; if(arr.constructor == Array){ ale ...

  6. js获取当前时间戳

    当使用js时我们可以使用timestamp = (new Date()).valueOf();直接获取当前时区时间点的时间戳.注意:js中时间戳的单位是毫秒,而php中则是秒

  7. json基础教程|理解Json

    一. 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.这一期讨论一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地 ...

  8. hushset的实现原理

    实现源码 public HashSet() { map = new HashMap<>(); } 这里可以看见当我们new一个hashset时,实际上hashset类又创建了一个hashm ...

  9. .Net程序员学用Oracle系列(16):访问数据库(ODP.NET)

    1..Net for Oracle 常见数据库驱动 1.1.微软提供的驱动 1.2.甲骨文提供的驱动 1.3.其它厂商提供的驱动 2.ODP.NET 常见问题分析 2.1.参数化问题 2.2.方法调用 ...

  10. 蓝牙门禁Android客户端

    先来了解下Android传统蓝牙连接的大致简单的流程: 其中涉及到几个类依次来介绍,废话不多说,下面是从Android4.4开发指南蓝牙所用到的类的截图: 第一个类BluetoothAdapter: ...