POJ 3660 Cow Contest 传递闭包确定名次
来源:互联网 发布:粗集料坚固性试验数据 编辑:程序博客网 时间:2024/06/01 20:56
题目来源:POJ 3660 Cow Contest
题意:n头牛 下面m行 每行x y 代表牛x打败了牛y 问有几头牛的最终排名是确定的
思路:传递闭包 如果x打败了y 令a[x][y]=1 并且a[y][x]=-1 其他不知道的都为0 然后floyd
最后对于每头牛数一下是否有n-1个1或者-1(就是不为0) 如果有n-1个不为0 说明该牛和其他牛都确定了状态
#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <map>#include <string>using namespace std;const int maxn = 110;int a[maxn][maxn];int n, m;void floyd(){for(int k = 1; k <= n; k++)for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++){if(a[i][k] == -1 && a[k][j] == -1)a[i][j] = -1;if(a[i][k] == 1 && a[k][j] == 1)a[i][j] = 1;}}int main(){scanf("%d %d", &n, &m);while(m--){int u, v;scanf("%d %d", &u, &v);a[u][v] = 1;//赢 a[v][u] = -1;//输 }floyd(); int ans = 0;for(int i = 1; i <= n; i++){int cnt = 0;for(int j = 1; j <= n; j++){if(i == j)continue;if(a[i][j])cnt++;}if(cnt == n-1){ans++;//printf("%d\n", i);}}printf("%d\n", ans);return 0;}
0 0
- POJ 3660 Cow Contest 传递闭包确定名次
- POJ 3660 Cow Contest(传递闭包求确定名次数)
- POJ-3660 Cow Contest 传递闭包
- POJ 3660 Cow Contest 传递闭包
- POJ 3660 Cow Contest 传递闭包
- 传递闭包-POJ 3660 Cow Contest
- (POJ 3660)Cow Contest [详解] [floyd] 传递闭包 确定top序列顺序
- poj Cow Contest(传递闭包)
- poj 3660 Cow Contest floyd 传递闭包!!基础
- poj 3660 Cow Contest ----floyd 传递闭包
- POJ 3660 Cow Contest (Floyd 传递闭包)
- Poj 3660 Cow Contest (传递闭包 Floyd算法变形)
- POJ 3660 Cow Contest-floyd传递闭包
- POJ 3660 Cow Contest.(Floyd,传递闭包).
- POJ 3660 Cow Contest(Floyd传递闭包)
- poj 3660 Cow Contest(传递闭包 Floyd)
- POJ 3660 &&NYOJ 211 Cow Contest(Floyd传递闭包)
- poj 3660Cow Contest(传递闭包)
- 一切成功源于积累——20140405 为什么就是不能再等等 每次都会被杀200点以上
- C# 委托与事件
- Uva11324
- tar 解压缩命令
- 关于VS2010+cuda4.2+opencv2.4.3的配置
- POJ 3660 Cow Contest 传递闭包确定名次
- trie基本用法
- 看你的飞洒洛克菲勒看能否
- iReport专题学习之报表元素03
- 使用ENVI打开raw格式影像
- 玩玩儿Flyway:数据库迁移
- pentesterlab学习记录-week3
- 九度1464:Hello World for U
- HDU 2594 Simpsons’ HiddenTalents(KMP:后缀与前缀)