#include <iostream>
#include <cstdio>
using namespace std; #include <vector>
#define loop(i, n) for (int i = 0; i < n; i++)
#define loopfrom1(i, n) for (int i =1; i < n; i++)
#define pb(a) push_back(a)
#define SZ size()
#define getint(n) scanf("%d", &n) #define MAXX 105
#define looptill(i, n) for (int i = 0; i <= n; i++) vector<int> Graph[MAXX];
bool visited[MAXX];
int inaccessible; void dfs(int u)
{
int len = Graph[u].SZ;
int v;
loop(i, len)
{
v = Graph[u][i];
if( ! visited[v] )
{
visited[v] = true;
inaccessible --;
dfs(v);
}
}
} int main()
{
int number_of_nodes, total_nodes;
int node1, node2;
while(true)
{
getint(total_nodes);
if(total_nodes == ) break;
looptill(i, total_nodes)
{
Graph[i].clear();
} while(true)
{
getint(node1);
if(node1 == ) break;
while(true)
{
getint (node2);
if(node2 == ) break;
Graph[node1].pb(node2);
}
} getint(number_of_nodes);
loop(t, number_of_nodes)
{
looptill(i, total_nodes)
{
visited[i] = false;
} getint(node1);
inaccessible = total_nodes;
dfs(node1); cout << inaccessible; for (int j = ; j <= total_nodes; j++)
{
if( ! visited[j] )
{
cout <<" "<<j;
}
}
cout << endl;
}
}
return ;
}
 // @BEGIN_OF_SOURCE_CODE

 #include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cctype>
#include <vector>
#include <map>
#include <set>
#include <math.h>
#define For(a) for ( i = 0; i < a; i++ )
#define Rep(a, b) for ( i = a; i <= b; i++ )
#define N 1000000
using namespace std; enum related_color {gray, white, black}; bool matrix [ + ] [ + ];
bool related_vertics [ + ];
related_color color [ + ];
int number_of_vertics_n; void reset_all (int n)
{
for ( int i = ; i < n; i++ ) {
for ( int j = ; j < n; j++ )
matrix [i] [j] = false;
}
} void dfs (int u)
{
color [u] = gray; for ( int i = ; i < number_of_vertics_n; i++ ) {
if ( matrix [u] [i] ) {
related_vertics [i] = true;
if ( color [i] == white ) {
related_vertics [i] = true;
dfs (i);
}
}
} color [u] = black;
} int main ()
{
while ( scanf ("%d", &number_of_vertics_n) && number_of_vertics_n ) {
reset_all (number_of_vertics_n); int starting_vertex; while ( scanf ("%d", &starting_vertex) && starting_vertex ) {
int series_of_edges;
while ( scanf ("%d", &series_of_edges) && series_of_edges ) {
matrix [starting_vertex - ] [series_of_edges - ] = true;
}
} int testCase;
scanf ("%d", &testCase); while ( testCase-- ) {
int query;
scanf ("%d", &query); for ( int i = ; i < number_of_vertics_n; i++ ) {
related_vertics [i] = false;
color [i] = white;
} dfs (query - ); vector <int> v; for ( int i = ; i < number_of_vertics_n; i++ ) {
if ( !related_vertics [i] )
v.push_back (i + );
} printf ("%d", v.size ()); for ( unsigned int i = ; i < v.size (); i++ )
printf (" %d", v [i]); printf ("\n");
} /*
for ( int i = 0; i < number_of_vertics_n; i++ ) {
for ( int j = 0; j < number_of_vertics_n; j++ )
related_vertics [j] = false; dfs (i); for ( int j = 0; j < number_of_vertics_n; j++ ) {
if ( related_vertics [j] )
matrix [i] [j] = true;
}
}
*/
} return ;
} // @END_OF_SOURCE_CODE

最新文章

  1. PHP生成二维码图片
  2. Unity3d《Shader篇》绘制圆角图片
  3. Git服务器搭建全过程分步详解【转】
  4. file类型允许的文件格式设置问题,“选择文件”打开缓慢
  5. 泛泰A870刷4.4专用英文版非触摸CWM Recovery 6.0.4.8(三版通刷)
  6. [妙味JS基础]第十一课:字符串、查找高亮显示
  7. JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
  8. (简单) HDU 2612 Find a way,BFS。
  9. java-多个数的和
  10. SSM框架下结合 log4j、slf4j打印日志
  11. Chapter 5 Blood Type——23
  12. 实验六 MapReduce实验:二次排序
  13. 32)django-modelform
  14. Spring 学习04
  15. python中各种遇到的函数
  16. OpenGL和GLSL版本更迭
  17. [21] Mesh法线的生成算法
  18. zipkin:和springcloud集成过程记录
  19. 使用Dottrace跟踪.net代码执行时间
  20. word-wrap

热门文章

  1. Hibernate数据库对象的创建与导出
  2. android ConnectivityManager 检查是否有网络
  3. COJ WZJ的数据结构(负十八)splay_tree的天堂
  4. 【转】android中如何查看某个线程的logcat--不错
  5. 抛出异常的区别 throw 和throw ex
  6. iOS越狱开发手记 - iOS9.3 dyld_decache不能提取arm64的dyld的解决方法
  7. Razor 在JS中嵌入后台变量
  8. HDU 5505 - BestCoder Round #60 - GT and numbers
  9. erlang mnesia 数据库查询
  10. kvm cobbler无人值守批量安装操作系统