博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3660 Cow Contest
阅读量:5020 次
发布时间:2019-06-12

本文共 1420 字,大约阅读时间需要 4 分钟。

题意:

N个选手,如果A比B强,B比C强,则A必比C强

告知若干个强弱关系,问有多少人的排名可以确定

思路:

如果一个点u, 有x个点能到达此点,从u点出发能到达y个点,若x+y=N-1,则u点的排名是确定的。用floyd算出每两个点之间的距离,最后统计,若dist[a][b] 无穷大且dist[b][a]无穷大,则a和b的排名都不能确定。最后用点个数减去不能确定点的个数即可。

实现:

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 const int INF = 0x3f3f3f3f; 7 int n, m, a[105][105], x, y; 8 int main() 9 {10 cin >> n >> m;11 for (int i = 1; i <= n; i++)12 {13 for (int j = 1; j <= n; j++)14 {15 a[i][j] = INF;16 }17 a[i][i] = 0;18 }19 for (int i = 0; i < m; i++)20 {21 cin >> x >> y;22 a[x][y] = 1;23 }24 for (int k = 1; k <= n; k++)25 {26 for (int i = 1; i <= n; i++)27 {28 for (int j = 1; j <= n; j++)29 {30 if (a[i][k] + a[k][j] < a[i][j])31 {32 a[i][j] = a[i][k] + a[k][j];33 }34 }35 }36 }37 set
s;38 for (int i = 1; i <= n; i++)39 {40 for (int j = i + 1; j <= n; j++)41 {42 if (a[i][j] == INF && a[j][i] == INF)43 {44 s.insert(i);45 s.insert(j);46 }47 }48 }49 cout << n - s.size() << endl;50 return 0;51 }

 

转载于:https://www.cnblogs.com/wangyiming/p/6351692.html

你可能感兴趣的文章
Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
查看>>
程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结 .
查看>>
idea tomcat 配置
查看>>
冲刺第二天
查看>>
LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)
查看>>
ASP.NET MVC 3–Global Action Filters
查看>>
OFFICE安装提示1935错误
查看>>
jva基础网络编程
查看>>
js 正计时和倒计时
查看>>
复合数据类型,英文词频统计
查看>>
you-get帮助使用手册
查看>>
nyoj756_重建二叉树_先序遍历
查看>>
sin()函数的实现
查看>>
图像切割之(一)概述
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>
python list和tuple
查看>>
基础薄弱的反思
查看>>
ORACLE增删改查以及case when的基本用法
查看>>