P2419 [USACO08JAN]Cow Contest S

这篇具有很好参考价值的文章主要介绍了P2419 [USACO08JAN]Cow Contest S。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

�(1≤�≤100)N(1≤N≤100) cows, conveniently numbered 1 �1 N , are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competitors.

The contest is conducted in several head-to-head rounds, each between two cows. If cow �A has a greater skill level than cow �(1≤�≤�;1≤�≤�;�≠�)B(1≤A≤N;1≤B≤N;A=B), then cow �A will always beat cow �B .

Farmer John is trying to rank the cows by skill level. Given a list the results of �(1≤�≤4,500)M(1≤M≤4,500) two-cow rounds, determine the number of cows whose ranks can be precisely determined from the results. It is guaranteed that the results of the rounds will not be contradictory.

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

输入格式

第一行两个用空格隔开的整数 �,�N,M。

第 2∼�+12∼M+1 行,每行为两个用空格隔开的整数 �,�A,B ,描述了参加某一轮比赛的奶牛的编号,以及结果(每行的第一个数的奶牛为胜者)。

输出格式

输出一行一个整数,表示排名可以确定的奶牛的数目。

输入输出样例

输入 #1复制

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

输出 #1复制

2

说明/提示

样例解释:

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

1.理解题意:用一个n*n的邻接图来存储奶牛们的胜负情况,由于有胜负两种情况,只要一头奶牛跟其他的奶牛有联系不管是胜还是负都可以得到该奶牛在这群奶牛排名的位置。所以在实际操作时,map[i][j]和map[j][i]有一个等于1都可以得到该奶牛和这个奶牛相比的结果。

2.使用Floyd算法,先将奶牛们的情况记录下来,注意其中有一个传递的关系,由于题目中已经说明,每个奶牛的能力不等,所以,如果A赢了B,B赢了C,那么A一定可以赢C。

3.对可以确定位置的奶牛进行计数,计数规则是,该奶牛在图中和其他奶牛有联系不管输赢。

#include"stdio.h"
int map[105][105];
int ans=0;
main()
{
	int n,m,i,j,x,y,k;
	scanf("%d %d",&n,&m);
	for(i=1;i<=m;i++)
	{
		scanf("%d %d",&x,&y);
		map[x][y]=1;
	} 
	for(k=1;k<=n;k++)
	for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
	{
		map[i][j]=map[i][j]||(map[i][k]&&map[k][j]);//联通块 
	}
	for(i=1;i<=n;i++)
	{
		int a=1;
		for(j=1;j<=n;j++)
		{
			if(i==j) continue;
		    else a=a&&(map[i][j]||map[j][i]);
			//该奶牛被其他奶牛打赢或者打赢其他奶牛的状态,如果这个奶牛和其他奶牛都有联系则可以判断出它的排名 
		}
		ans+=a;	
	}
	printf("%d\n",ans);
}

 文章来源地址https://www.toymoban.com/news/detail-436226.html

到了这里,关于P2419 [USACO08JAN]Cow Contest S的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [USACO08FEB] Meteor Shower S BFS

    共有 M M M 颗流星 ( 1 ≤ M ≤ 50000 ) (1≤M≤50000) ( 1 ≤ M ≤ 50000 ) 会坠落在农场上,其中第 i i i 颗流星会在时刻 T i T_i T i ​ 砸在坐标为 ( X i , Y i ) ( 0 ≤ X i , Y i ≤ 300 ) (X_i,Y_i)(0≤X_i,Y_i≤300) ( X i ​ , Y i ​ ) ( 0 ≤ X i ​ , Y i ​ ≤ 300 ) 的格子里。流星会将它所在的格子,以及周

    2024年02月15日
    浏览(31)
  • 洛谷P2911 [USACO08OCT] Bovine Bones G(C语言)

    看到这么小的数据范围,那当然是暴力枚举啦!况且这还是入门题,怎么可能如此难为我这种萌新呢。  我的思路是用数组下标来记录次数  这就是用三个数的和当做下标 然后后面就是遍利数组找出要的值

    2024年01月21日
    浏览(62)
  • P2921 [USACO08DEC] Trick or Treat on the Farm G

    Portal. 每只奶牛的终止条件是到达自己已经访问过的点,换言之,就是该奶牛的路线构成了一个环。并且,每一个房间通往的房间都是固定且唯一的,所以说只要进入的这个房间在环上,这个房间之后会获得的糖果数已经固定了。 我们开一个数组 s 记录当前位置的糖果数量,

    2024年02月06日
    浏览(235)
  • Windows XP SP2 (Simplified Chinese MS08_067漏洞复现)

    MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞。远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户系统,以SYSTEM权限执行任意指令。 下载平台: 下载链接: (1)、配置IP: (2)、关

    2024年02月06日
    浏览(37)
  • 某软件的一个模块的需求规格说明书中描述【软件测试题目】

    某软件的一个模块的需求规格说明书中描述 (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣除当月薪资的8%;过失,扣除当月薪资的4% (1)分析原因及结果 原因 c1:年薪制员工 c2:非年薪制员工 c3:过失 c4:严重过失

    2024年02月08日
    浏览(48)
  • 数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)

    目录 题目描述 输入示例 输出示例 解题思路  解题方法(C语言) 解析 有序的二叉树遍历可以用堆栈以非递归的方式实现。 例如: 假设遍历一个节点数为6的二叉树(节点数据分别为1到6)时, 堆栈操作为:push(1);push(2);push(3);pop();pop();push(4);pop()

    2024年02月07日
    浏览(46)
  • 概念:COW与MOR

    名词解释 COW:写时复制 MOR:读时合并 写时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略。其核心思想是,如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到

    2023年04月22日
    浏览(41)
  • 聊聊大数据框架的数据更新策略: COW,MOR,MOW

    大数据框架下,常用的数据更新策略有三种: COW: copy-on-write, 写时复制; MOR: merge-on-read, 读时合并; MOW: merge-on-write, 写时合并; hudi等数据湖仓框架,常用的是前两种实现数据更新。而Doris则主要用后两种更新数据。 在数据写入的时候,复制一份原来的拷贝,在其基础上添加新数据

    2024年02月05日
    浏览(29)
  • 聊聊大数据框架的数据更新解决方案: COW, MOR, MOW

    大数据框架下,常用的数据更新策略有三种: COW: copy-on-write, 写时复制; MOR: merge-on-read, 读时合并; MOW: merge-on-write, 写时合并; hudi等数据湖仓框架,常用的是前两种实现数据更新。而Doris则主要用后两种更新数据。 在数据写入的时候,复制一份原来的拷贝,在其基础上添加新数据

    2024年02月05日
    浏览(37)
  • COW AI接入到微信 保姆教程 (部署在服务器,插件安装)

    此文章不涉及国外的AI模型,也无需翻墙,跟某AI模型无关,审核大哥别弄错了 最近的AI开始越开越火了,开始介入到我们生活中的方方面面。就有人好奇AI是否能接入到微信吗?我在GitHub上搜索的时候还真有除了对话外还可以通过插件来实现画图,定时提醒,快递查询等等功

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包