UVa 988 - Many Paths, One Destination
称号:生命是非常多的选择。现在给你一些选择(0~n-1),和其他选项后,分支数每一次选择,选择共求。
分析:dp,图论。假设一个状态也许是选择的数量0一个是,代表死亡,计数的路径数将达到所有死亡可以去除。
用一个状态数组记录到达每一个选择的路径数,它等于能到达它的前驱节点的路径加和。
稀疏图,使用邻接表储存。初始是节点0的路径条数为1。代表出生。
说明:没有给数据范围略坑啊,RE一次。WA一次。╮(╯▽╰)╭。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio> using namespace std; int sums[15000];
int deat[15000]; typedef struct tnode
{
int point;
tnode *next;
}node;
node* H[15000];
node E[150000];
int e_size = 0; void initial()
{
memset( H, 0, sizeof(H) );
memset( E, 0, sizeof(E) );
e_size = 0;
} void addedge( int a, int b )
{
E[e_size].point = b;
E[e_size].next = H[a];
H[a] = &E[e_size ++];
} int main()
{
int n,m,c,t = 1;
while ( ~scanf("%d",&n) ) {
if ( t ++ > 1 ) printf("\n");
initial();
memset( sums, 0, sizeof(sums) );
for ( int i = 0 ; i < n ; ++ i ) {
scanf("%d",&m);
for ( int j = 0 ; j < m ; ++ j ) {
scanf("%d",&c);
addedge( i, c );
}
if ( !m ) deat[i] = 1;
else deat[i] = 0;
} sums[0] = 1;
for ( int i = 0 ; i < n ; ++ i )
for ( node* p = H[i] ; p ; p = p->next )
sums[p->point] += sums[i];
int sum = 0;
for ( int i = 1 ; i < n ; ++ i )
if ( deat[i] )
sum += sums[i]; printf("%d\n",sum);
}
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
UVa 988 - Many Paths, One Destination的更多相关文章
- UVA 10564 十 Paths through the Hourglass
Paths through the Hourglass Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & % ...
- UVA 10000 Longest Paths (SPFA算法,模板题)
题意:给出源点和边,边权为1,让你求从源点出发的最长路径,求出路径长度和最后地点,若有多组,输出具有最小编号的最后地点. #include <iostream> #include < ...
- UVA 125 Numbering Paths
题目大意:给定n条单向边,求图中任意两点的连通路径的数目.其中点是从0-输入中出现的最大的点. 可以用floyd-warshall算法或者dfs. for(int k = 0; k < n; k ...
- UVa 10564 DP Paths through the Hourglass
从下往上DP,d(i, j, k)表示第(i, j)个格子走到底和为k的路径条数. 至于字典序最小,DP的时候记录一下路径就好. #include <cstdio> #include &l ...
- 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 ...
- 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 ...
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- 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 ...
- LeetCode 1059. All Paths from Source Lead to Destination
原题链接在这里:https://leetcode.com/problems/all-paths-from-source-lead-to-destination/ 题目: Given the edges ...
随机推荐
- MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!
Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your My ...
- 苹果新的编程语言 Swift 语言进阶(五)--控制流
Swift 语言支持C语言全部的控制语句.包含for 和while循环语句,if和switch条件语句,以及break和continue控制语句等. Swift 语言除了支持以上语句,还添加了一个f ...
- ERWin 7.1 和7.2 的官方FTP下载地址
ERWin 7.1 下载地址: ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM71sp2-b1303.exe ERWin 7.2 下载地址: ...
- 再说Java EE
说到JavaEE(曾经叫J2EE)是什么,你可能回答:JavaEE是一组规范,这么说是没错,可是自己不认为这个答案非常大.非常空么?什么又是规范?规范能组成应用么?能在JVM中跑起来么?要理解这些,先 ...
- Java经典面试题及详解
Java基础方面: 1.作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package ...
- [Cocos2d-x]解决Android平台ndk-build时不自动删除外部库
参考链接: http://blog.chinaunix.net/uid-26009923-id-3430612.html http://hi.baidu.com/hpyfei/item/52a2b21 ...
- java学习笔记08--泛型
java学习笔记08--泛型 泛型可以解决数据类型的安全性问题,它主要的原理,是在类声明的时候通过一个标识标识类中某个属性的类型或者是某个方法的返回值及参数类型.这样在类声明或实例化的时候只要指定好需 ...
- API - 微云
API - 微云 1.接口说明 2.数据上传协议说明 1. 接口说明 文件上传申请,成功会返回实际上传的地址. 根据申请上传返回的地址,组织数据上传. 1.1 URL OAuth2.0协议: http ...
- [华为机试练习题]50.求M的N次方的最后三位
题目 描写叙述: 正整数M 的N次方有可能是一个很大的数字,我们仅仅求该数字的最后三位 例1: 比方输入5和3 ,5的3次方为125.则输出为125 例2: 比方输入2和10 2的10次方为1024 ...
- 一张图总结Google C++编程规范(Google C++ Style Guide)
Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比較全面的说明图,能够在短时间内高速掌握规范的重点内容.只是规范毕竟是人定的,记得活学活用.看图前别忘了阅读以下三条 ...