首页 > 其他 > 详细

bzoj1612 / P2419 [USACO08JAN]牛大赛Cow Contest(Floyd)

时间:2018-10-27 12:58:55      阅读:135      评论:0      收藏:0      [点我收藏+]

P2419 [USACO08JAN]牛大赛Cow Contest

Floyd不仅可以算最短路,还可以处理点之间的关系。

跑一遍Floyd,处理出每个点之间是否有直接或间接的关系。

如果某个点和其他$n-1$个点都有关系,那么它的排名就是可确定的。

技术分享图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define re register
 5 using namespace std;
 6 int n,m,d[302][302],ans;
 7 int main(){
 8     scanf("%d%d",&n,&m); int q1,q2;
 9     for(re int i=1;i<=m;++i) scanf("%d%d",&q1,&q2),d[q1][q2]=1;
10     for(re int k=1;k<=n;++k)
11         for(re int j=1;j<=n;++j)
12             for(re int i=1;i<=n;++i)
13                 d[i][j]|=d[i][k]&d[k][j];//(i,k),(k,j)都要有关系,(i,j)才有关系
14     for(re int i=1;i<=n;++i){
15         int tmp=1;
16         for(re int j=1;j<=n;++j)
17             if(i!=j) tmp&=d[i][j]|d[j][i];//是否与其他n-1个点都有关系
18         ans+=tmp;
19     }printf("%d",ans);
20     return 0;
21 }
View Code

 

bzoj1612 / P2419 [USACO08JAN]牛大赛Cow Contest(Floyd)

原文:https://www.cnblogs.com/kafuuchino/p/9860648.html

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