题目链接:http://poj.org/problem?id=3660

有n头奶牛还有m种关系a,b表示a牛逼b彩笔,所以a排名比b高

最后问你给出的关系最多能确定多少头奶牛的排名,而且给出的数据不会有矛盾

其实就是给出了一个无环的有向图,只要有一点他能跟所有点有联系那么这个点的排名就知道了。

可以用一下floyd的思想还是能简单实现的。

其实这题简单来说就是能走完所有点的路都经过哪些点,最容易想到的就是floyd求多源点的最短路

然后稍微改一下就好了。

#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int n , m , a , b , mmp[110][110] , In[110] , Out[110] , counts;
bool vis[110][110];
void bfs() {
memset(vis , false , sizeof(vis));
for(int k = 1 ; k <= n ; k++) {
for(int i = 1 ; i <= n ; i++) {
for(int j = 1 ; j <= n ; j++) {
if(mmp[i][k] != 0 && mmp[k][j] != 0) {
if(!vis[i][j]) {
In[j]++;
Out[i]++;
vis[i][j] = true;
mmp[i][j] = 1;
}
}
}
}
}
for(int i = 1 ; i <= n ; i++) {
//cout << i << ' ' << In[i] << ' ' << Out[i] << endl;
if(In[i] + Out[i] == n + 1) {
counts++;
}
}
}
int main() {
cin >> n >> m;
for(int i = 1 ; i <= n ; i++) {
In[i] = 0 , Out[i] = 0;
for(int j = 1 ; j <= n ; j++) {
mmp[i][j] = 0;
}
mmp[i][i] = 1;
}
for(int i = 1 ; i <= m ; i++) {
cin >> a >> b;
mmp[a][b] = 1;
}
counts = 0;
bfs();
cout << counts << endl;
return 0;
}

poj 3660Cow Contest的更多相关文章

  1. poj 1719Shooting Contest

    //本题大意是对于一个r*c的矩阵,每一列有两个是白色的 //如今选c个位置,要求每一行至少有一个白色的方格被选上 //每一列仅仅能选一个 //用二分匹配求出最大匹配,假设最大匹配等于r,则满足 // ...

  2. POJ 3204 Ikki's Story I - Road Reconstruction

    Ikki's Story I - Road Reconstruction Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 7 ...

  3. POJ 3744 Scout YYF I

    分段的概率DP+矩阵快速幂                        Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  4. [最近公共祖先] POJ 3728 The merchant

    The merchant Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 4556   Accepted: 1576 Desc ...

  5. POJ 3278 The merchant

    传送门 Time Limit: 3000MS Memory Limit: 65536K Description There are N cities in a country, and there i ...

  6. Scout YYF I(POJ 3744)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5565   Accepted: 1553 Descr ...

  7. poj 3744 Scout YYF I (矩阵)

    Description YYF -p. Here is the task, given the place of each mine, please calculate the probality t ...

  8. [POJ 3734] Blocks (矩阵高速幂、组合数学)

    Blocks Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3997   Accepted: 1775 Descriptio ...

  9. poj 3728 The merchant(LCA)

    Description There are N cities in a country, and there is one and only one simple path between each ...

随机推荐

  1. python虚拟环境完美部署

    一.前言 预处理 建议仔细看完本文章之后在进行操作,避免失误,本环境可以用于生产环境,有利于生产环境python之间的环境隔离,互相不会产生环境冲突:pyenv和pyenv-virtualenv可以完 ...

  2. 使用vue实现行列转换的一种方法。

    行列转换是一个老生常谈的问题,这几天逛知乎有遇到了这个问题.一个前端说,拿到的数据是单列的需要做转换才能够绑定,折腾了好久才搞定,还说这个应该后端直接出数据,不应该让前端折腾. 这个嘛,行列转换在后端 ...

  3. 改 Anaconda Jupyter Notebook 开发文件保存目录

    1.打开cmd,输入命令找到配置文件路径 jupyter notebook --generate-config 2.打开 jupyter_notebook_config.py 修改配置 c.Noteb ...

  4. go 学习笔记之走进Goland编辑器

    工欲善其事必先利其器,命令行工具虽然能够在一定程度上满足基本操作的需求,但实际工作中总不能一直使用命令行工具进行编码操作吧? 学习 Go 语言同样如此,为此需要寻找一个强大的 IDE 集成环境帮助我们 ...

  5. Linux 根分区扩容

    扩容分区之前,首先要保证当前有闲置空间 1. 查看当前现有分区情况 df -lah 可以看出当前根分区只剩 6.4 G 可用 2. 查看当前磁盘情况 fdisk -l 可以看出有 30G的未分配空间 ...

  6. mac安装ElasticSearch+head+node+一个例子~

    1.下载ElasticSearch 官网下载链接:https://www.elastic.co/cn/downloads/past-releases(进去的可能会比较慢,网络好的情况下会好一些) 我下 ...

  7. JVM实战---类加载的过程

    任何程序都需要加载到内存才能与CPU进行交流 同理, 字节码.class文件同样需要加载到内存中,才可以实例化类 ClassLoader的使命就是提前加载.class 类文件到内存中 在加载类时,使用 ...

  8. Samba:基于公网 IP 的服务访问

    写在前面的话 由于使用过程中,发现如果 Samba 只用于内网访问,同事在外面甚至其它不是一个网段的同事就无法访问了.这显然不符合我们最终的需求,最后没法,只能把访问部署到云服务器上面去,此时问题来了 ...

  9. 基于opencv,开发摄像头播放程序

    前言 Windows下实现摄像视频捕捉有多种实现方式:各种方式的优劣,本文不做对比.但是,opencv是一款老牌开发库,在图像处理领域声名显赫.采用opencv来处理摄像视频,在性能和稳定性上,是有保 ...

  10. 初识JavaScript和面向对象

    1.javascript基本数据类型: number: 数值类型 string: 字符串类型 boolean: 布尔类型 null: 空类型 undefault:未定义类型 object: 基本数据类 ...