UVa 11518 - Dominos 2
来源:互联网 发布:python cffi 编辑:程序博客网 时间:2024/05/21 07:15
题目:给你一些多米诺骨牌,他们的关系,以及推动的那些骨牌编号,问最后倒了多少个。
分析:图论,搜索。按照题意,建立有向图,搜索即可。每条边均为单向。
因为点多边少,所以采用邻接表储存。
说明:注意初始化。
#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;int visit[10010];//link_list_starttypedef struct enode{int point;enode*next; }edge;edge*H[10010];edge E[10010];int edge_count;void inital(){edge_count = 0;memset( H, 0, sizeof(H) );}void add_edge( int a, int b ){E[edge_count].point = b;E[edge_count].next = H[a];H[a] = &E[edge_count ++];}//link_list_overint Q[10010];void bfs( int s, int n ){Q[0] = s;visit[s] = 1;int move = 0,save = 1;while ( move < save ) {int now = Q[move ++];for ( edge* p = H[now] ; p ; p = p->next )if ( !visit[p->point] ) {visit[p->point] = 1;Q[save ++] = p->point;}}}int main(){int T,n,m,l,a,b,s;while ( ~scanf("%d",&T) ) for ( int t = 1 ; t <= T ; ++ t ) {scanf("%d%d%d",&n,&m,&l);inital();for ( int i = 0 ; i < m ; ++ i ) {scanf("%d%d",&a,&b);add_edge( a, b );}memset( visit, 0, sizeof(visit) );for ( int i = 0 ; i < l ; ++ i ) {scanf("%d",&s);bfs( s, n );}int count = 0;for ( int i = 1 ; i <= n ; ++ i )count += visit[i];printf("%d\n",count);}return 0;}
0 0
- UVa 11518 - Dominos 2
- uva 11504 - Dominos (scc)
- UVa 11504 - Dominos
- Dominos 2(DFS)(容器)
- uva11518 Dominos 2
- UVa 11504 - Dominos(缩点)
- UVA 11504 - Dominos(强连通分量)
- UVA - 11504 Dominos 强连通分量
- uva 11504 - Dominos(强联通分量)
- (beginer)DFS (强连通)UVA 11504 Dominos
- UVA11504- Dominos(Tarjan+缩点)
- Dominos<并查集求解>
- Dominos 拓扑排序 强连通 缩点
- uva 11121 - Base -2
- uva 401 (2)
- UVA 11121 Base -2
- UVa 11121 - Base -2
- uva 11121 - Base -2
- Make an AJAX request using $.ajax in MVC 4
- linux环境安装cacti
- 虚拟机
- Spring中模板模式和回调模式的讲解
- 解决flash遮挡div问题
- UVa 11518 - Dominos 2
- Spring中PropertyPlaceholderConfigurer的使用介绍
- 【Unity 3D】学习笔记十三:线性布局
- ooad相关
- Android(1) service实现手机摇晃监听
- Unity3D研究院之脚本实现模型的平移与旋转(六)
- 搜狗地图:路上的那些事儿(三十九)
- 无配置实现WCF访问
- ASP.NET MVC AJAX returns 404 or 500