称号:生命是非常多的选择。现在给你一些选择(0~n-1),和其他选项后,分支数每一次选择,选择共求。

分析:dp,图论。假设一个状态也许是选择的数量0一个是,代表死亡,计数的路径数将达到所有死亡可以去除。

用一个状态数组记录到达每一个选择的路径数,它等于能到达它的前驱节点的路径加和。

稀疏图,使用邻接表储存。初始是节点0的路径条数为1。代表出生。

说明:没有给数据范围略坑啊,RE一次。WA一次。╮(╯▽╰)╭。

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include <cstdio>
  5.  
  6. using namespace std;
  7.  
  8. int sums[15000];
  9. int deat[15000];
  10.  
  11. typedef struct tnode
  12. {
  13. int point;
  14. tnode *next;
  15. }node;
  16. node* H[15000];
  17. node E[150000];
  18. int e_size = 0;
  19.  
  20. void initial()
  21. {
  22. memset( H, 0, sizeof(H) );
  23. memset( E, 0, sizeof(E) );
  24. e_size = 0;
  25. }
  26.  
  27. void addedge( int a, int b )
  28. {
  29. E[e_size].point = b;
  30. E[e_size].next = H[a];
  31. H[a] = &E[e_size ++];
  32. }
  33.  
  34. int main()
  35. {
  36. int n,m,c,t = 1;
  37. while ( ~scanf("%d",&n) ) {
  38. if ( t ++ > 1 ) printf("\n");
  39. initial();
  40. memset( sums, 0, sizeof(sums) );
  41. for ( int i = 0 ; i < n ; ++ i ) {
  42. scanf("%d",&m);
  43. for ( int j = 0 ; j < m ; ++ j ) {
  44. scanf("%d",&c);
  45. addedge( i, c );
  46. }
  47. if ( !m ) deat[i] = 1;
  48. else deat[i] = 0;
  49. }
  50.  
  51. sums[0] = 1;
  52. for ( int i = 0 ; i < n ; ++ i )
  53. for ( node* p = H[i] ; p ; p = p->next )
  54. sums[p->point] += sums[i];
  55. int sum = 0;
  56. for ( int i = 1 ; i < n ; ++ i )
  57. if ( deat[i] )
  58. sum += sums[i];
  59.  
  60. printf("%d\n",sum);
  61. }
  62. return 0;
  63. }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

UVa 988 - Many Paths, One Destination的更多相关文章

  1. UVA 10564 十 Paths through the Hourglass

     Paths through the Hourglass Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & % ...

  2. UVA 10000 Longest Paths (SPFA算法,模板题)

    题意:给出源点和边,边权为1,让你求从源点出发的最长路径,求出路径长度和最后地点,若有多组,输出具有最小编号的最后地点. #include <iostream> #include < ...

  3. UVA 125 Numbering Paths

    题目大意:给定n条单向边,求图中任意两点的连通路径的数目.其中点是从0-输入中出现的最大的点. 可以用floyd-warshall算法或者dfs. for(int k = 0; k < n; k ...

  4. UVa 10564 DP Paths through the Hourglass

    从下往上DP,d(i, j, k)表示第(i, j)个格子走到底和为k的路径条数. 至于字典序最小,DP的时候记录一下路径就好. #include <cstdio> #include &l ...

  5. How an Event Enters a Cocoa Application

    How an Event Enters a Cocoa Application An event is a low-level record of a user action that is usua ...

  6. On-demand diverse path computation for limited visibility computer networks

    In one embodiment, a source device detects a packet flow that meets criteria for multi-path forwardi ...

  7. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  8. 01背包(类) UVA 10564 Paths through the Hourglass

    题目传送门 /* 01背包(类):dp[i][j][k] 表示从(i, j)出发的和为k的方案数,那么cnt = sum (dp[1][i][s]) 状态转移方程:dp[i][j][k] = dp[i ...

  9. LeetCode 1059. All Paths from Source Lead to Destination

    原题链接在这里:https://leetcode.com/problems/all-paths-from-source-lead-to-destination/ 题目: Given the edges ...

随机推荐

  1. HttpSession具体解释

    session的机制 http是无状态的协议,客户每次读取web页面时,server都打开新的会话,并且server也不会自己主动维护客户的上下文信息,那么要怎么才干实现会话跟踪呢?session就是 ...

  2. ASP.NET常被忽视的一些细节

    原文:ASP.NET常被忽视的一些细节 前段时间碰到一个问题:为什么在ASP.NET程序中定时器有时候会不工作? 这个问题看起来很奇怪,代码好像也没错,但就是结果与预期不一致. 其实这里是ASP.NE ...

  3. Google 搜索的基本语法

    ★搜索引擎的选择 先简单说一下"搜索引擎的选择". 在咱们天朝,Google 屡屡被 GFW 骚扰,导致百度占了便宜,成为份额最高的搜索引擎.不过今天这篇教程,俺还是继续拿 Goo ...

  4. 使用ffmpeg 对视频截图,和视频转换格式

    //执行CMD命令方法 public static void CmdProcess(string command)//调用CMD        {            //实例化一个进程类      ...

  5. 冒泡排序 JAVA版

    冒泡排序 算法思想是每次从数组末端开始比较相邻俩元素,把第i小的冒泡到数组的第i个位置.i从0一直到N-1从而完成排序.当然也可以从数组开始端开始比较相邻两元素,把第i大的冒泡到第N-i个位置.I从0 ...

  6. 一个通用onReady函数的实现

    define([], function(){ function onReady(fn) { var DOC = document, html = DOC.documentElement, W3C = ...

  7. Android中Menu的基本使用方法

    一. 使用xml定义Menu 菜单资源文件必须放在res/menu文件夹中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单 ...

  8. leetcode第一刷_Unique Paths

    从左上到右下,仅仅能向右或向下,问一共同拥有多少种走法. 这个问题当然能够用递归和dp来做,递归的问题是非常可能会超时,dp的问题是须要额外空间. 事实上没有其它限制条件的话,这个问题有个非常easy ...

  9. oracle 之 内存—鞭辟近里(二)

    overview of the pga pga是在操作系统的进程或是线程特定的一块内存区域,它不是共享的.因为pga是进程指定的,因此它不会在sga中分配. pga是一个内存堆,其中包含了被专用服务器 ...

  10. JavaScript 闭包环境非常奇特 - 相当于类与实例的关系?!

    JavaScript 闭包环境非常奇特 - 相当于类与实例的关系?! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一 ...