首页 > 编程语言 > 详细

HDU 4324 (拓扑排序) Triangle LOVE

时间:2015-04-25 22:40:55      阅读:366      评论:0      收藏:0      [点我收藏+]

因为题目说了,两个人之间总有一个人喜欢另一个人,而且不会有两个人互相喜欢。所以只要所给的图中有一个环,那么一定存在一个三元环。

所以用拓扑排序判断一下图中是否有环就行了。

技术分享
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 const int maxn = 2000 + 10;
 5 char G[maxn][maxn];
 6 int c[maxn];
 7 int n;
 8 
 9 bool dfs(int u)
10 {
11     c[u] = -1;
12     for(int v = 0; v < n; v++) if(G[u][v] == 1)
13     {
14         if(c[v] < 0) return false;
15         if(!c[v] && !dfs(v)) return false;
16     }
17     c[u] = 1;
18     return true;
19 }
20 
21 bool solve()
22 {
23     memset(c, 0, sizeof(c));
24     for(int i = 0; i < n; i++) if(!c[i])
25         if(!dfs(i)) return false;
26     return true;
27 }
28 
29 int main()
30 {
31     //freopen("in.txt", "r", stdin);
32 
33     int T; scanf("%d", &T);
34     for(int kase = 1; kase <= T; kase++)
35     {
36         scanf("%d", &n);
37         for(int i = 0; i < n; i++) scanf("%s", G[i]);
38         printf("Case #%d: %s\n", kase, solve() ? "No" : "Yes");
39     }
40 
41     return 0;
42 }
代码君

 

HDU 4324 (拓扑排序) Triangle LOVE

原文:http://www.cnblogs.com/AOQNRMGYXLMV/p/4456715.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!