基础最短路 八 POJ3660
来源:互联网 发布:yy淘宝互刷平台 编辑:程序博客网 时间:2024/05/25 16:37
POJ 3660 :http://poj.org/problem?id=3660
n为 100
这题起初没想出来,看了网上的人的想法。愧疚愧疚......
题目大意:n只牛,m场比赛。表示 牛A打败了牛B。
问:有几只牛的排名能够确定。
看了网上大家的解答,明白。一只牛的排名要想确定,必须知道 这只牛和 其他n-1只牛 的胜败关系。
而胜败关系是可以传递的。也就是说,牛A打败了牛B,牛B打败了牛C,那么牛A肯定打败牛C。
所以这题就是要求 n只牛之间的传递闭包。 然后统计有哪些牛 和别的n-1只牛皆有胜败关系。没那么这只牛的排名就确定了。
求传递闭包,用Floyd算法。 我还以为时间复杂度这么高的算法没什么用呢..........O__O "…
Floyd:
#include"cstdio"#include"iostream"#include"cstring"#include"algorithm"#include"vector"#include"cmath"#include"queue"using namespace std;#define INF 9999999#define inf 109#define loop(x,y,z) for(x=y;x<z;x++)#define ll long longint main(){ int n,m; int e[inf][inf]; int i,j,k; int ans=0; memset(e,0,sizeof e); scanf("%d%d",&n,&m); while(m--) { scanf("%d%d",&i,&j); e[i][j]=1; } loop(k,1,n+1) loop(i,1,n+1) loop(j,1,n+1) if(e[i][k]&&e[k][j]) e[i][j]=1; loop(i,1,n+1) { int sum=0; loop(j,1,n+1) if(e[j][i])sum++; loop(j,1,n+1) if(e[i][j])sum++; if(sum==n-1)ans++; } printf("%d\n",ans); return 0;}
0 0
- 基础最短路 八 POJ3660
- 【最短路】poj3660 最短路的应用
- hdu2544 基础最短路
- 基础最短路
- 最短路基础算法
- 【最短路】基础
- 基础最短路算法【渣】
- HDU 2544 最短路基础
- POJ2387(最短路基础)
- HDU-2544-基础最短路
- HDOJ-----2544最短路基础
- poj 1135 基础最短路
- 基础最短路四 POJ3268
- 基础最短路五 POJ1860
- 基础最短路六 POJ3259
- hdu 2544 基础最短路
- poj3660
- poj3660
- Maven “peer not authenticated”
- PHP写习笔记——PHP逻辑运算符;
- Java标识符
- Android Java调用ffmpeg命令
- 字典
- 基础最短路 八 POJ3660
- 使用开源软件 Mantis 实施缺陷跟踪的成功实践
- Modernizr.js-简
- smmu 学习笔记之ias和oas
- 值得推荐的C/C++框架和库 (真的很强大)
- Android Properties设置与获取
- vue计算属性computed的使用
- openGL指定着色模式
- Redis大鹏博客转载____Redis主从复制