POJ 3660 Cow Contest ( 最短路松弛思想应用 && Floyd求传递闭包 )
题意 : 给出 N 头奶牛在比赛的结果,问你最多的能根据给出结果确定其名次的奶牛头数。结果给出的形式为 A B 代表在比赛当中 A 战胜了 B
分析 : 对于一头奶牛来说,如果我们能确定其他 N - 1 头奶牛和它的关系,那么它的名次就确定了。将奶牛之间的胜负关系建图,如果给出 A B 那么我们建一条 A->B 的边,代表 A 能战胜 B ,当然也表示了 A 和 B 能确立关系,那么现在有一头奶牛 C 且有 C->A 即其与 A 的关系是确定的,那么 B 和 C 的关系是否能确定呢?毋庸置疑,当然可以,关系为 C->A->B ,但是通过 A 这个中间人来确定 C 和 B 的关系实在麻烦,既然两点有边即为关系确立,那么能不能将 C->A->B 这条边松弛为 C->B ?是不是像极了最短路里面的松弛操作。数据不大,实际上这也是一个求传递闭包的过程,可以用 Floyd 做,用二维数组 G 存图,且初始化为 0 ,如果 G[i][j] 或者 G[j][i] 不为 0 那么代表 i 和 j 有关系,可见 Floyd 中状态转移方程改为 G[i][j] |= (G[i][k]&&G[k][j]) 即可,最后对于每一头牛判断一下,是否有 N-1 头牛和其有关系即可!
#include<bits/stdc++.h>
using namespace std;
;
int G[maxn][maxn];
int main(void)
{
int N, M;
scanf("%d %d", &N, &M);
int from, to;
; i<=M; i++)
scanf("%d %d", &from, &to),
G[;
; k<=N; k++)
; i<=N; i++)
; j<=N; j++)
G[i][j] |= (G[i][k]&&G[k][j]);
;
; i<=N; i++){
;
; j<=N; j++){
if(i!=j) { if(G[i][j] || G[j][i]) Num--; }
}if(!Num) ans++;
}
printf("%d\n", ans);
;
}
POJ 3660 Cow Contest ( 最短路松弛思想应用 && Floyd求传递闭包 )的更多相关文章
- POJ 3660 Cow Contest 任意两点之间的关系 Floyd
题意:牛之间有绝对的强弱,给出一些胜负关系,问有多少头牛可以确定其绝对排名. #include <iostream> #include <cstdio> #include &l ...
- POJ 3660 Cow Contest / HUST 1037 Cow Contest / HRBUST 1018 Cow Contest(图论,传递闭包)
POJ 3660 Cow Contest / HUST 1037 Cow Contest / HRBUST 1018 Cow Contest(图论,传递闭包) Description N (1 ≤ N ...
- POJ 3660 Cow Contest 传递闭包+Floyd
原题链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- POJ 3660 Cow Contest
题目链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- POJ 3660 Cow Contest (floyd求联通关系)
Cow Contest 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/H Description N (1 ≤ N ≤ 100) ...
- POJ 3660—— Cow Contest——————【Floyd传递闭包】
Cow Contest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- POJ - 3660 Cow Contest 传递闭包floyed算法
Cow Contest POJ - 3660 :http://poj.org/problem?id=3660 参考:https://www.cnblogs.com/kuangbin/p/31408 ...
- POJ 3660 Cow Contest(传递闭包floyed算法)
Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5989 Accepted: 3234 Descr ...
- POJ 3660 Cow Contest(Floyd求传递闭包(可达矩阵))
Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16341 Accepted: 9146 Desc ...
随机推荐
- VMware 虚拟化编程(12) — VixDiskLib Sample 程序使用
目录 目录 前文列表 vixDiskLibSample 安装 Sample 程序 Sample 程序使用方法 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/V ...
- 阶段1 语言基础+高级_1-2 -面向对象和封装_16this关键字的作用
this主要是在重名的情况下 ,起到区分的效果 新建demo04的包,里面新建类Person 通过this.进行区分 this关键字可以解决重名 分不开的问题 这里的person调用的sayHello ...
- 抓包工具之—charles碎言碎语
一.Charles常见使用场景: 1.Charles是跨平台的抓包工具,支持Windows,mac或Linux平台: 2.获取请求信息.测试接口时,若接口文档中的参数不清楚或没有接口文档时,可以通过抓 ...
- Android 静态广播和动态广播接收顺序
Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播 - 被广播接收器接收后,可被终止,无法往下继续传达. 典型代表:短信广播 普通广播 - 发送至每一 ...
- mysql新建表
CREATE TABLE table( id int(20) not null auto_increment primary key, //auto_increment当为空时自动补全,注意,类型应该 ...
- 【GTS】关于GtsTetheringTestCases模块的几个失败项
GTS---关于GtsTetheringTestCases模块的几个失败项 1.run gts -m GtsTetheringTestCases -t com.google.android.tethe ...
- js数组,运算符
- 《剑指offer》面试题18 树的子结构 Java版
(输入两棵二叉树A和B,判断B是不是A的子结构.补充下,根据书中的代码来看,子结构的定义并不包括叶子节点下的null,也就是说只要B的存在数字的结构存在于A中就行,那么如果B是null树,那么就不属于 ...
- [Codeforces 1208D]Restore Permutation (树状数组)
[Codeforces 1208D]Restore Permutation (树状数组) 题面 有一个长度为n的排列a.对于每个元素i,\(s_i\)表示\(\sum_{j=1,a_j<a_i} ...
- 偏序问题及CDQ分治详解
CDQ用来解决分治时左半部分对右半部分造成影响的问题. CDQ分治的经典问题是三维偏序问题. 要想解决三维偏序问题,首先你要知道什么是偏序.(废话) 一维偏序: 给出直线上的n个点,问有多少对点满足x ...