codeforces gym #101987B- Cosmetic Survey(floyd)
题目链接:
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)的更多相关文章
- [CodeForces - 296D]Greg and Graph(floyd)
Description 题意:给定一个有向图,一共有N个点,给邻接矩阵.依次去掉N个节点,每一次去掉一个节点的同时,将其直接与当前节点相连的边和当前节点连出的边都需要去除,输出N个数,表示去掉当前节点 ...
- codeforces gym #101987K -TV ShowGame(2-SAT)
题目链接: https://codeforces.com/gym/101987 题意: 有长度为$n$的只包含$B,R$的字符串 有m种关系,每个关系说出三个位置的确切字符 这三个位置的字符最多有一个 ...
- Codeforces Gym 101505C : Cable Connection (计算几何)
题目链接 题意:给出第一象限的N个点,存在一直线x/a+y/b=1(a>0,y>0)使得所有点都在这条直线下面,求 min{sqrt(a^2+b^2)} 显然,这样的直线必然经过这N个点中 ...
- codeforces gym #102082C Emergency Evacuation(贪心Orz)
题目链接: https://codeforces.com/gym/102082 题意: 在一个客车里面有$r$排座位,每排座位有$2s$个座位,中间一条走廊 有$p$个人在车内,求出所有人走出客车的最 ...
- Codeforces Round #219 (Div. 1)(完全)
戳我看题目 A:给你n个数,要求尽可能多的找出匹配,如果两个数匹配,则ai*2 <= aj 排序,从中间切断,分成相等的两半后,对于较大的那一半,从大到小遍历,对于每个数在左边那组找到最大的满足 ...
- (floyd)佛洛伊德算法
Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...
- POJ 2139 Six Degrees of Cowvin Bacon (Floyd)
题意:如果两头牛在同一部电影中出现过,那么这两头牛的度就为1, 如果这两头牛a,b没有在同一部电影中出现过,但a,b分别与c在同一部电影中出现过,那么a,b的度为2.以此类推,a与b之间有n头媒介牛, ...
- Stockbroker Grapevine(floyd)
http://poj.org/problem?id=1125 题意: 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时, 输入数据结束),然后接下来N行描述第i(1< ...
- Codeforces 1301B Motarack's Birthday(二分)
题目链接:http://codeforces.com/problemset/problem/1301/B 思路: (1)都是-1的情况 (2)只有一个除-1之外的数 (3)至少有两个除-1之外的不同的 ...
随机推荐
- outlook 升级 及邮件同步方式设置
**office(outlook2010 32B)升级到office2016 64B时的操作 1.删除office(excel. word等) 2.选择offcie2016 安装程序安装 (outlo ...
- Visual Studio 2017修改编码UTF-8
转载自:https://blog.csdn.net/qq_36848370/article/details/82597157 VS 2017隐藏了高级保存功能,导致没办法直接去设置代码编码 UTF-8 ...
- NodeJs 的Module.export 和 export
NodeJs 的Module.export 和 export 是一样的. 但是Module.export ={....} 可以起效,.export ={....} 是失效的. 这里的export ...
- 五、HashMap的使用 及其源码解析
HashMap的底层实现原理?领接表(数组+链表)hash表数组+链表+红黑树 链表:查找慢 插入 删除快红黑树:查找快 插入 删除慢 HashMap是线程安全的吗?不是线程安全的 在什么情况下 ,是 ...
- Java 面向对象(二)封装
一.封装(Encapsulation) 1.概述 封装是面向对象编程的核心思想.把对象的属性和行为封装起来,其载体就是类. 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的, ...
- Java基础加强-泛型
/*泛型*/ (泛型是给编译器看的) 泛型是提供给 /*javac编译器使用的*/,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型带类型说明的集合时,会去掉 "类 ...
- linux:# vi /etc/profile -bash: vi: command not found 的解决办法
/bin/vi /etc/profile 直接用全路径vi,linux下一切皆文件,进去把profile文件内容改一下,一定是profile出了问题 export JAVA_HOME=/usr/jav ...
- Pose Estimation
Human Pose Estimation for Real-World Crowded Scenarios https://arxiv.org/pdf/1907.06922.pdf CrowdPos ...
- bash功能——命令行编辑、内部命令 外部命令、命令补全 、命令历史、文件名通配符、命令别名
命令行编辑: Ctrl + a : 跳转到当前编辑行首 Ctrl + e:跳转到当前编辑行尾 # mkdir /home/dira /home/diab 像这种命令,/home/dira 和 /hom ...
- 关于js里的布尔值判断
第一种if(a)a为以下值时转换为false false undefined null 0 -0 NaN ""