POJ 3660 Cow Contest【传递闭包】

解题思路:给出n头牛,和这n头牛之间的m场比赛结果,问最后能知道多少头牛的排名。 首先考虑排名怎么想,如果知道一头牛打败了a头牛,以及b头牛打赢了这头牛,那么当且仅当a+b+1=n时可以知道排名,即为此时该牛排第b+1名。

即推出当一个点的出度和入度的和等于n-1的时候,该点的排名是可以确定的, 即用传递闭包来求两点的连通性,如果d[i][j]==1,那么表示i,j两点相连通,度数都分别加1

 

Cow Contest
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 7262 Accepted: 4020

Description

N (1 ≤ N ≤ 100) cows, conveniently numbered 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 B (1 ≤ AN; 1 ≤ BN; AB), 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 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.

Input

* Line 1: Two space-separated integers: N and M * Lines 2..M+1: Each line contains two space-separated integers that describe the competitors and results (the first integer, A, is the winner) of a single round of competition: A and B

Output

* Line 1: A single integer representing the number of cows whose ranks can be determined  

Sample Input

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

Sample Output

2
#include<iostream>  
#include<cstdio>  
#include<cstring>  
#include<algorithm>  
using namespace std;
int d[105][105],degree[105];
int main()
{int n,m,i,j,k,ans=0,u,v;while(scanf("%d %d",&n,&m)!=EOF){memset(degree,0,sizeof(degree));memset(d,0,sizeof(d));for(i=1;i<=m;i++){scanf("%d %d",&u,&v);d[u][v]=1;}for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++)d[i][j]=d[i][j]||(d[i][k]&&d[k][j]);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(d[i][j]){degree[i]++;degree[j]++;}}		}for(i=1;i<=n;i++)if(degree[i]==n-1)ans++;printf("%d\n",ans);	}
}

  

转载于:https://www.cnblogs.com/wuyuewoniu/p/4254751.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cell Stem Cell:研究人员开发出大脑类器官用于研究认知障碍!

图片来源&#xff1a;Cell Stem Cell来源&#xff1a;细胞摘要&#xff1a;来自耶鲁大学的研究人员近日在实验室培养皿中模拟了两种大脑结构以及它们之间的相互作用&#xff0c;为揭示神经精神疾病的起因带来了曙光。耶鲁大学遗传学副教授In-Hyun Park及其团队创造了大脑中丘脑…

图像处理与图像识别笔记(一)

本系列是研一课程《图像处理与图像识别》的随堂笔记&#xff0c;主要内容是数字图像处理方面&#xff0c;根据老师的讲课内容与自己的理解所书写&#xff0c;还会有一些具体实现的代码&#xff0c;基于Python&#xff0c;欢迎交流。本篇主要介绍图像处理与图像识别的基础知识。…

java日期处理总结

1.java.sql.Date 从数据库中取出的日期格式(rs.getDate())是java.sql.Date&#xff0c;这是java.util.Date的子类。查询API后发现可用的方法很少。包含构造只有4个&#xff1a; Date(long date) 使用给定毫秒时间值构造一个 Date 对象。voidsetTime(long date) …

神经网络的黎明

来源&#xff1a;中信出版社摘要&#xff1a;任何人工智能的难题都可以被解决。唯一能证明这一论断成立的是这样一个事实&#xff1a;自然界通过进化已经解决了这些难题。但在20 世纪50年代就已经存在各种暗示&#xff0c;如果AI 研究者能够选择完全不同于符号处理的方式&#…

计算机视觉(一)概述

一、什么是计算机视觉 计算机视觉(Computer Vision)是一门如何使计算机“看”的学问&#xff0c;让摄像头和电脑代替人眼对目标进行识别、跟踪、测量等机器视觉。计算机视觉能够模拟人类视觉的优越的能力&#xff0c;如识别物体、估计立体空间与距离、躲避障碍、理解图像、想象…

Php通过gsoap调用c++ websevice

&#xfeff;&#xfeff;Php通过gsoap调用c websevice 由于工作的关系&#xff0c;需要通过php调用c使用gsoap编写的websevice&#xff0c;其中遇到了很多困难&#xff0c;特此进行总结如下&#xff0c;也方便大家以后的使用和提高。 其中服务端采用c编写而成&#xff0c;客户…

图像处理与图像识别笔记(二)图像变换

在本章节中&#xff0c;将介绍几种常用的图像变换的方法&#xff0c;即利用数学公式将图像变换成另一种具有特定物理意义的图像&#xff0c;通过新的图像&#xff0c;我们可以观察出原图像的某些特性&#xff0c;且可以对原图像进行滤波、压缩等图像处理的操作&#xff0c;包括…

图解|2018年度中国科学十大进展

来源&#xff1a;锐科技 2019年2月27日&#xff0c;科技部基础研究管理中心召开“2018年度中国科学十大进展专家解读会”&#xff0c;发布了2018年度中国科学十大进展。以下10项重大科学进展入选&#xff1a;01 基于体细胞核移植技术成功克隆出猕猴02 创建出首例人造单染色体真…

sql 系统函数取表基本信息

SELECT 表名case when a.colorder1 then d.name else end, 序号a.colorder, 列名a.name, 数据类型b.name, 长度COLUMNPROPERTY(a.id,a.name,PRECISION), 小数位isnull(COLUMNPROPERTY(a.id,a.name,Scale),0), 标识case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √…

《麻省理工学院技术评论》评出最新十大突破性技术

来源&#xff1a;新华网摘要&#xff1a;全球知名科技评论期刊《麻省理工学院技术评论》27日发布2019年“全球十大突破性技术”&#xff0c;灵巧机器人、核能新浪潮、定制癌症疫苗、人造肉汉堡等入选。这份期刊的中文版官网当天发布公报说&#xff0c;今年是该杂志创刊120周年&…

图像处理与图像识别笔记(三)图像增强1

图像增强的目的是为了改善图像的视觉效果&#xff0c;为了更便于人或机器的分析和处理&#xff0c;在不考虑图像降质&#xff08;前提&#xff09;的情况下&#xff0c;提高图像的可观性。灰度变换是一种典型的图像增强方法&#xff0c;我们通常把图像处理按照处理方法分成空域…

图像处理与图像识别笔记(五)图像增强2

上一节中我们讲解了灰度变换的原理以及实现方法&#xff0c;本节我们讲解空域滤波增强&#xff0c;与灰度变换相同&#xff0c;空域滤波增强是一种空域处理的方法&#xff0c;不过空域滤波不是一种对点做处理的方法&#xff0c;而是利用相邻像素间的关系进行增强。空域滤波可以…

欧洲两个研究团队开发出了让截肢者能感觉到并准确抓住物体的仿生手

来源&#xff1a;IEEE电气电子工程师学会摘要&#xff1a;在过去十年中&#xff0c;研究人员在开发能给用户提供触觉和压力感的触觉传感器方面取得了很大进展。如在你旁边正好有一个咖啡杯&#xff0c;那么拿起这个杯子&#xff0c;并注意下在不真正看着它的情况下做这件事有多…

【转】eclipse中egit插件使用

原文网址&#xff1a;http://my.oschina.net/songxinqiang/blog/192567 eclipse和git这个两个工具的使用人数都是相当多的&#xff0c;在eclipse里面也有egit插件来支持eclipse中使用git&#xff0c;但是网上的相关说明都是简单使用&#xff0c;或者没有说明白一些具体的问题&a…

全球AI芯片投资版图公开!机会都在这五大场景

来源&#xff1a;智东西摘要&#xff1a;过去一年&#xff0c;随着人工智能在各个行业的逐步落地&#xff0c;AI芯片的发展路径逐渐明朗。在行业走过野蛮生长&#xff0c;开始加速落地、加速整合的过程中&#xff0c;也有更多的AI芯片公司也开始走出属于自己的差异化路线。我们…

图像处理与图像识别笔记(六)图像增强3

上一章节中我们讲解了空域滤波的图像增强方法&#xff0c;包括图像的平滑和锐化&#xff0c;本文中&#xff0c;我们首先带来频域滤波的图像增强方法&#xff0c;指在频域中对图像进行变换&#xff0c;需要的基础知识是前述过的图像傅里叶变换&#xff0c;请查看学习。 一、频…

初探数位DP-hdu2089

一开始刷dp就遇到了数位dp&#xff0c;以前程序设计艺术上看过一点&#xff0c;基本没懂&#xff0c;于是趁今天遇到题目&#xff0c;想把它搞会&#xff0c;但就目前状态来看仍然是似懂非懂啊&#xff0c;以后还要反复搞 统计区间[l,r]的满足题意的数的个数&#xff0c;可以转…

自动驾驶的疑点重重, 再次印证了科技的「非理性繁荣」

来源&#xff1a;悟空智能科技特斯拉 CEO 马斯克对全自动驾驶的短期实现&#xff0c;有着近乎疯狂的执念。最近&#xff0c;他又在第四季度财报的电话会议上表示&#xff0c;特斯拉汽车在今年年底前能实现全自动驾驶&#xff0c;无需人类干预。马斯克还表示&#xff0c;特斯拉在…

Truncated SVD for faster dection

Truncated SVD方法最先被提出在《Fast R-CNN》论文中&#xff0c;用于降低全连接层的运算量&#xff0c;提升模型的速度。在卷积神经网络的分类任务中&#xff0c;FC层的运算速度远远大于CONV层&#xff0c;而在Fast R-CNN的目标检测任务中&#xff0c;大多数的运算时间发生在F…

CSS学习-网页导航栏

用ul制作网页导航栏 <!DOCTYPE html> <html><head><style>ul {list-style-type: none;margin: 0;padding: 0;width: 800px;overflow: hidden;}li {float: left;}a {display: block;width: 120px;font-weight: bold;color: #FFFFFF;border-right: 1px s…