Warshall算法(闭包)

Warshall算法又叫floyd-Warshall算法,思想为i->j&&j->k,那么i->k

Warshall算法(闭包)

Warshall算法(闭包)

图上点的先后,这道题不能用拓扑排序做,但是拓扑排序只能得到一个整体“不错”的序列,并不能说明任意两点的先后。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 map <string, int> mp;
 6 int a[205][205], num;
 7 
 8 void op()
 9 {
10     int i, j, k;
11     num--;
12     for(j=1;j<=num;j++)
13     {
14         for(i=1;i<=num;i++)
15         {
16             for(k=1;k<=num;k++)
17             {
18                 a[i][k]|=a[i][j]&a[j][k];
19             }
20         }
21     }
22 }
23 
24 int main()
25 {
26     int n, m, n1, n2;
27     string s1, s2;
28     scanf("%d %d", &n, &m);
29     num = 1;
30     getchar();
31     while(n--)
32     {
33         cin >> s1;
34         cin >> s2;
35         cin >> s2;
36         cin >> s2;
37         cin >> s2;
38         if(!mp[s1]) mp[s1] = num++;
39         if(!mp[s2]) mp[s2] = num++;
40         a[mp[s1]][mp[s2]] = 1;
41     }
42     op();
43     while(m--)
44     {
45         cin >> s1;
46         cin >> s2;
47         cin >> s2;
48         cin >> s2;
49         cin >> s2;
50         n1 = mp[s1];
51         n2 = mp[s2];
52         if(a[n1][n2]) printf("Factn");
53         else if(a[n2][n1]) printf("Alternative Factn");
54         else printf("Pants on Firen");
55     }
56     return 0;
57 }

 

原文链接: https://www.cnblogs.com/0xiaoyu/p/12840290.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    Warshall算法(闭包)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/347010

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午4:16
下一篇 2023年3月2日 上午4:18

相关推荐