POJ-3660(Floyd算法)
Cow Contest
POJ-3660
1.本题考察的是最短路,用的算法是Floyd算法
2.如果一个结点和剩余的n-1个结点都有关系,那么可以确定其排名
3.需要注意的是,判断是否有关系时,反向关系也要考虑
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m;
int map[101][101];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
int a,b;
memset(map,0,sizeof(map));
for(int i=0;i<m;i++){
cin>>a>>b;
map[a][b]=1;
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(!map[i][j])
if(map[i][k]&&map[k][j]){
map[i][j]=1;
}
}
}
}
int cnt=0;
for(int i=1;i<=n;i++){
int ans=0;
for(int j=1;j<=n;j++){
if(i!=j){
if(map[i][j]||map[j][i])
ans++;
}
}
if(ans==n-1)
cnt++;
}
cout<<cnt<<endl;
//system("pause");
return 0;
}
java
package POJ;
import java.util.*;
public class POJ_3660 {
static int n,m;
static int [][]map;//用于判断i,j两个顶点之间是否存在联系,如果一个点和所有其他的点都有联系则说明这个点的排名确定了
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
m=cin.nextInt();
map=new int [n+1][n+1];
for(int i=0;i<n+1;i++)
for(int j=0;j<n+1;j++)
map[i][j]=0;
for(int i=0;i<m;i++) {
int a,b;
a=cin.nextInt();
b=cin.nextInt();
map[a][b]=1;
}
for(int k=1;k<=n;k++) {
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
if(map[i][j]==0) {
if(map[i][k]>0&&map[k][j]>0)
map[i][j]=1;
}
}
}
}
int cnt=0;
for(int i=1;i<=n;i++) {
int ans=0;
for(int j=1;j<=n;j++) {
if(i!=j)
if(map[i][j]>0||map[j][i]>0)
ans++;
}
if(ans==n-1)
cnt++;
}
System.out.println(cnt);
}
}
POJ-3660(Floyd算法)的更多相关文章
- 图论---POJ 3660 floyd 算法(模板题)
是一道floyd变形的题目.题目让确定有几个人的位置是确定的,如果一个点有x个点能到达此点,从该点出发能到达y个点,若x+y=n-1,则该点的位置是确定的.用floyd算发出每两个点之间的距离,最后统 ...
- POJ 3660 Floyd传递闭包
题意:牛有强弱,给出一些牛的强弱的胜负关系,问可以确定几头牛的排名. 思路: Floyd传递闭包 // by SiriusRen #include <bitset> #include &l ...
- poj 2240 floyd算法
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17349 Accepted: 7304 Descri ...
- Cow Contest POJ - 3660 floyd传递闭包
#include<iostream> #include<cstring> using namespace std; ,INF=0x3f3f3f3f; int f[N][N]; ...
- (poj 3660) Cow Contest (floyd算法+传递闭包)
题目链接:http://poj.org/problem?id=3660 Description N ( ≤ N ≤ ) cows, conveniently numbered ..N, are par ...
- ACM: POJ 3660 Cow Contest - Floyd算法
链接 Cow Contest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Descri ...
- POJ 3660—— Cow Contest——————【Floyd传递闭包】
Cow Contest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- [ACM_模拟] POJ 1094 Sorting It All Out (拓扑排序+Floyd算法 判断关系是否矛盾或统一)
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- poj 3660 Cow Contest(传递闭包 Floyd)
链接:poj 3660 题意:给定n头牛,以及某些牛之间的强弱关系.按强弱排序.求能确定名次的牛的数量 思路:对于某头牛,若比它强和比它弱的牛的数量为 n-1,则他的名次能够确定 #include&l ...
- POJ 3660 Cow Contest (floyd求联通关系)
Cow Contest 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/H Description N (1 ≤ N ≤ 100) ...
随机推荐
- JavaScript——DOMM
文本节点 != 文本内容
- Microsoft Office Excel 2010 常用操作
1.添加下拉菜单 (1)选中单元格 (2)数据--数据有效性--数据有效性 (3)在"有效性条件"的"允许"处,选择"序列",并在新出现的& ...
- Bootstrap巨幕
这是一个轻量.灵活的组件,它能延伸至整个浏览器视口来展示网站上的关键内容. jumbotron修饰 <div class="jumbotron"> <h1> ...
- 解决debian (Friendly ARM 嵌入式板)的sudo等一部分命令无法TAB补全
TAB对于比较长的命令在使用时是十分方便的,最近就遇到TAB 键无法补全sudo后跟的命令的情况因此去网上取经.在一篇博客中找到解决问题的方法,觉得大牛们写的太精炼然后自己做如下总结方便自已以后解决类 ...
- 如何快速定位 Redis 热 key?
背景 在 Redis 中,热 key 指的是那些在一段时间内访问频次比较高的键值,具体到业务上,商品的限时抢购.瞬时的新闻热点或某个全局性的资源,都极有可能产生热点 key. 热点 key 的出现可能 ...
- macOS & pbcopy
macOS & pbcopy copy from command line pbcopy $ whoami | pbcopy # xgqfrms-mbp $ echo "hello, ...
- GPU 加速 & WebGL
GPU 加速 & WebGL 开启 GPU 加速, 硬件加速 垃圾面试官,瞎忽悠 holy shit 美国想象力英语,前端 leader WebGL 加速 ??? 是什么鬼 ??? three ...
- Open Collective
Open Collective Open Collective is an online funding platform for open and transparent communities. ...
- webpack async load modules & dynamic code splitting
webpack async load modules & dynamic code splitting webpack 按需/异步加载/Code Splitting webpack loade ...
- Flutter Navigator2.0
Example 1 import 'package:dart_printf/dart_printf.dart'; import 'package:flutter/material.dart'; cla ...