syhd142 |
|
|||
日歷
統計
導航常用鏈接留言簿(2)隨筆檔案(23)文章分類(270)
文章檔案(122)我的豆瓣搜索最新評論
閱讀排行榜
評論排行榜 |
傳遞閉包水體,這都錯3次,BS一下自己。 #include <stdio.h>
#include <string.h> #define N 105 struct Matrix { int mat[N][N]; }; void print(Matrix g, int n) { for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { printf("%3d", g.mat[i][j]); } printf("\n"); } printf("\n"); } void Flyod_Warshall(Matrix &g, int n) { for(int k = 1; k <= n; k++) { for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { g.mat[i][j] |= g.mat[i][k] & g.mat[k][j]; } } } } int main() { freopen("in", "r", stdin); int n, m, st, ed, ans[N], top; Matrix g; while(scanf("%d", &n), n) { memset(g.mat, 0, sizeof(g.mat)); while(scanf("%d", &st), st) { while(scanf("%d", &ed), ed) g.mat[st][ed] = 1; } Flyod_Warshall(g, n); scanf("%d", &m); for(int i = 0; i < m; i++) { scanf("%d", &st); top = 0; for(int j = 1; j <= n; j++) { if(!g.mat[st][j]) { ans[top++] = j; } } printf("%d", top); for(int j = 0; j < top; j++) printf(" %d", ans[j]); printf("\n"); } } return 0; }
|
![]() |
|
Copyright © Fucker | Powered by: 博客園 模板提供:滬江博客 |