题目链接:

https://codeforces.com/gym/101987/my

题意:

顶点数为$n$,边数为$m$

求出每个点对$(a,b)$,$a$到$b$的最小路径的最大值

数据范围:

$1\leq n \leq 500$

$1\leq m \leq 1250000$

分析:

直接floyd处理

当时想的是用边来放缩S值,既然可以用边放缩,那么就可以用点放缩

AC代码:

#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
using namespace std;
const int maxn=500+7;
int S[maxn][maxn];
int ma[maxn][maxn];
int sk[maxn],top,cnt,n,m;
int main(){
scanf("%d %d",&m,&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
scanf("%d",&ma[i][j]);
if(ma[i][j]==0)ma[i][j]=1e7;
}
for(int i=1;i<=m;i++){
for(int j=i+1;j<=m;j++){
int a=0,b=0;
for(int k=1;k<=n;k++){
if(ma[k][i]<ma[k][j])a++;
else if(ma[k][i]>ma[k][j])b++;
}
if(a>b)S[i][j]=a;
else if(b>a)S[j][i]=b;
}
}
for(int k=1;k<=m;k++){
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
if(S[i][k]==0||S[k][j]==0)continue;
S[i][j]=max(S[i][j],min(S[i][k],S[k][j]));
}
}
}
for(int i=1;i<=m;i++){
int fla=1;
for(int j=1;j<=m;j++){
if(i==j)continue;
if(S[i][j]<S[j][i]){
fla=0;
break;
}
}
if(fla)sk[++top]=i;
}
for(int i=1;i<=top;i++){
printf("%d",sk[i]);
if(i==top)printf("\n");
else printf(" ");
}
return 0;
}

  

codeforces gym #101987B- Cosmetic Survey(floyd)的更多相关文章

  1. [CodeForces - 296D]Greg and Graph(floyd)

    Description 题意:给定一个有向图,一共有N个点,给邻接矩阵.依次去掉N个节点,每一次去掉一个节点的同时,将其直接与当前节点相连的边和当前节点连出的边都需要去除,输出N个数,表示去掉当前节点 ...

  2. codeforces gym #101987K -TV ShowGame(2-SAT)

    题目链接: https://codeforces.com/gym/101987 题意: 有长度为$n$的只包含$B,R$的字符串 有m种关系,每个关系说出三个位置的确切字符 这三个位置的字符最多有一个 ...

  3. Codeforces Gym 101505C : Cable Connection (计算几何)

    题目链接 题意:给出第一象限的N个点,存在一直线x/a+y/b=1(a>0,y>0)使得所有点都在这条直线下面,求 min{sqrt(a^2+b^2)} 显然,这样的直线必然经过这N个点中 ...

  4. codeforces gym #102082C Emergency Evacuation(贪心Orz)

    题目链接: https://codeforces.com/gym/102082 题意: 在一个客车里面有$r$排座位,每排座位有$2s$个座位,中间一条走廊 有$p$个人在车内,求出所有人走出客车的最 ...

  5. Codeforces Round #219 (Div. 1)(完全)

    戳我看题目 A:给你n个数,要求尽可能多的找出匹配,如果两个数匹配,则ai*2 <= aj 排序,从中间切断,分成相等的两半后,对于较大的那一半,从大到小遍历,对于每个数在左边那组找到最大的满足 ...

  6. (floyd)佛洛伊德算法

    Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...

  7. POJ 2139 Six Degrees of Cowvin Bacon (Floyd)

    题意:如果两头牛在同一部电影中出现过,那么这两头牛的度就为1, 如果这两头牛a,b没有在同一部电影中出现过,但a,b分别与c在同一部电影中出现过,那么a,b的度为2.以此类推,a与b之间有n头媒介牛, ...

  8. Stockbroker Grapevine(floyd)

    http://poj.org/problem?id=1125 题意: 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时, 输入数据结束),然后接下来N行描述第i(1< ...

  9. Codeforces 1301B Motarack's Birthday(二分)

    题目链接:http://codeforces.com/problemset/problem/1301/B 思路: (1)都是-1的情况 (2)只有一个除-1之外的数 (3)至少有两个除-1之外的不同的 ...

随机推荐

  1. (二)CXF之用CXF官方工具生成客户端Client

    一.CXF工具的下载与使用 登录CXF官网:http://cxf.apache.org/download.html 下载,本系列使用的是3.1.5版本: 添加path环境变量 二.案例 2.1 发布w ...

  2. (七)mybatis之多对一关系(复杂)

    一.需求分析 需求:查询所有消费者信息,关联查询订单及商品信息,订单明细信息中关联查询查商品信息. 分析:一个消费者有多条订单,一条订单只有一个消费者但是有多条订单明细,一条订单明细只有一个商品信息. ...

  3. Java代理模式示例程序

    Java代理模式示例程序 当然不是我想出来的,是我看的一个网上教程里的. 模拟的是一个对电脑公司的代理 真实类的接口: public interface SaleComputer { public S ...

  4. Hibernate-validate工具类,手动调用校验返回结果

    引言:在常见的工程中,一般是在Controller中校验入参,校验入参的方式有多种,这里介绍的使用hibernate-validate来验证,其中分为手动和自动校验,自动校验可以联合spring,使用 ...

  5. 实现Vue的双向绑定

    一.概述 之前有讲到过vue实现整体的整体流程,讲到过数据的响应式,是通过Object.defineProperity来实现的,当时只是举了一个小小的例子,那么再真正的vue框架里是如何实现数据的双向 ...

  6. libssh

    1.SSH概念 ssh(secure shell),安全外壳协议,由IETF的网络小组所制定.ssh为建立在应用层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. ...

  7. SpringMVC返回void的三大方法

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 在是springMVC的void的返回值中,有三大方法可以运行,个人觉得 ...

  8. PAT Advanced 1071 Speech Patterns (25 分)

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  9. PAT Basic 1077 互评成绩计算 (20 分)

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  10. NoClassDefFoundError: org/springframework/boot/bind/RelaxedDataBinder

    今天启动springboot的时候发现一个类不能注入RelaxedDataBinder,发现是没有相应的jar包,原因是在版本2.x之后删除了包.所以只要在之后的引用版本中换成2.x之后即可. 查看p ...