1612: [Usaco2008 Jan]Cow Contest奶牛的比赛

Time Limit: 5 Sec Memory Limit: 64 MB

Description

FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:)。在赛场上,奶牛们按1..N依次编号。每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就是说,奶牛们的编程能力有明确的排名。 整个比赛被分成了若干轮,每一轮是两头指定编号的奶牛的对决。如果编号为A的奶牛的编程能力强于编号为B的奶牛(1 <= A <= N; 1 <= B <= N; A != B) ,那么她们的对决中,编号为A的奶牛总是能胜出。 FJ想知道奶牛们编程能力的具体排名,于是他找来了奶牛们所有 M(1 <= M <= 4,500)轮比赛的结果,希望你能根据这些信息,推断出尽可能多的奶牛的编程能力排名。比赛结果保证不会自相矛盾。

Input

  • 第1行: 2个用空格隔开的整数:N 和 M
  • 第2..M+1行: 每行为2个用空格隔开的整数A、B,描述了参加某一轮比赛的奶 牛的编号,以及结果(编号为A,即为每行的第一个数的奶牛为 胜者)

Output

  • 第1行: 输出1个整数,表示排名可以确定的奶牛的数目

Sample Input

5 5
4 3
4 2
3 2
1 2
2 5

Sample Output

2
输出说明:
编号为2的奶牛输给了编号为1、3、4的奶牛,也就是说她的水平比这3头奶牛都差。而编号为5的奶牛又输在了她的手下,也就是说,她的水平比编号为5的奶牛强一些。于是,编号为2的奶牛的排名必然为第4,编号为5的奶牛的水平必然最差。其他3头奶牛的排名仍无法确定。

题解

我们要确定一个人的排名,那么就需要知道他赢谁或输给谁,只有全部知道是才可以确定,如果有两个人不确输赢定,那么就不能确定排名。
所以我们可以Floyd一下,知道i与j的输赢关系,最后如果i能赢j,那么j一定输给i,如果出现矛盾,那么就不能确定排名。

代码如下

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,Ans,tl=0,hd=0,f[105],dst[105][105];
int main(){#ifndef ONLINE_JUDGEfreopen("prob.in","r",stdin);freopen("prob.out","w",stdout);#endifscanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);dst[x][y]=1;}for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i^j&&j^k&&k^i) dst[i][j]|=dst[i][k]&&dst[k][j];for(int i=1;i<=n;i++){bool t=1;for(int j=1;j<=n;j++)if(i^j&&dst[i][j]==dst[j][i]){t=0;break;}Ans+=t;}printf("%d\n",Ans);return 0;
}

转载于:https://www.cnblogs.com/XSamsara/p/9043185.html

BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】相关推荐

  1. bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛(floyd)

    1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1153  Solved: 7 ...

  2. bzoj 1623: [Usaco2008 Open]Cow Cars 奶牛飞车(贪心)

    1623: [Usaco2008 Open]Cow Cars 奶牛飞车 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 578  Solved: 402 ...

  3. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(切比雪夫距离+multiset贪心+并查集)

    1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1092  S ...

  4. bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)

    1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 715  Solved: 47 ...

  5. 【bzoj1612】【Usaco2008 Jan】Cow Contest奶牛的比赛 题解代码

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1612 题解: 对于这种题我们发现可以dfs求出一共有多少头牛比他强,一共有多少头牛比他弱 ...

  6. BZOJ 1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居:队列 + multiset + 并查集【曼哈顿距离变形】...

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1604 题意: 平面直角坐标系中,有n个点(n <= 100000,坐标范围10^9) ...

  7. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1293  Solved ...

  8. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...

  9. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1290  Solved ...

最新文章

  1. XML文件读取数据绑定到DropDownList
  2. DM368启动串口打印分析
  3. python 为什么每次代码运行时间不同-为什么你写的Python运行的那么慢呢?
  4. vmx转换ofv模板,导入esxi
  5. MFC CEdit 自动换行功能
  6. [CF.Skills]Windows Mobile如何编程实现免提功能
  7. 【李宏毅2020 ML/DL】P56 Transformer and its variant | New Architecture
  8. Remote Desktop Connection Manager (RDCMan) 介绍
  9. jquery outerhtml
  10. 手机号电子邮箱怎么填写?
  11. The word 'classpath' is not correctly spelled解决方法
  12. python中什么是不等长编码_2021学堂云计算机科学和Python编程导论(自主模式)期末答案...
  13. Tushare如何获取股票历史交易数据
  14. 详解BlockingQueue
  15. STM8 fHSI和 fCPU分频
  16. python基础读后感_《python基础教程 》第一章 读书笔记
  17. 2021.1山科马原大题
  18. iPhone界面各种控件的大小
  19. 六度分离 ——最短路
  20. 在国内市场《智能家居》的可行性发展

热门文章

  1. 英文投稿成功接收的经验
  2. 如何在Postfix中设置邮件转发
  3. 使用ASM进行人脸相关识别的预处理
  4. 利用nginx搭建http和rtmp协议的流媒体服务器
  5. 简明深度学习方法概述 Deep Learning:Methods and Application
  6. HAProxy详解(二):HAProxy基础配置与应用实例
  7. Canny边缘检测原理及C#程序实现
  8. 使用 Swagger 文档化和定义 RESTful API
  9. 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)
  10. Exchange邮件服务器实现外部邮件的收发