牛客寒假6-I 导航系统
链接:https://ac.nowcoder.com/acm/contest/3007/I
来源:牛客网
题目描述
输入描述:
输出描述:
输出
复制 No
No
题解
跑一遍MST得出道路长度长,跑一遍Floyd处理出任意两点间距离并与导航给出的距离对比
CODE
#include <bits/stdc++.h>
#define dbg(x) cout << #x << "=" << x << endl
#define eps 1e-8
#define pi acos(-1.0) using namespace std;
typedef long long LL; template<class T>inline void read(T &res)
{
char c;T flag=;
while((c=getchar())<''||c>'')if(c=='-')flag=-;res=c-'';
while((c=getchar())>=''&&c<='')res=res*+c-'';res*=flag;
} namespace _buff {
const size_t BUFF = << ;
char ibuf[BUFF], *ib = ibuf, *ie = ibuf;
char getc() {
if (ib == ie) {
ib = ibuf;
ie = ibuf + fread(ibuf, , BUFF, stdin);
}
return ib == ie ? - : *ib++;
}
} int qread() {
using namespace _buff;
int ret = ;
bool pos = true;
char c = getc();
for (; (c < '' || c > '') && c != '-'; c = getc()) {
assert(~c);
}
if (c == '-') {
pos = false;
c = getc();
}
for (; c >= '' && c <= ''; c = getc()) {
ret = (ret << ) + (ret << ) + (c ^ );
}
return pos ? ret : -ret;
} const int maxn = ; struct node
{
int u,v,w;
}e[maxn*maxn]; int fa[maxn];
LL g[maxn][maxn];
LL dis[maxn][maxn]; int tot[maxn]; int fid(int x)
{
return fa[x]==x ? x : fa[x] = fid(fa[x]);
} bool cmp(node a,node b)
{
return a.w < b.w;
} int main()
{
int n;
int num=,x,sum=;
read(n);
for(int i = ; i <= n; ++i) {
for(int j = ; j <= n; ++j) {
read(x);
g[i][j] = x;
if(i != j)
{
e[++num].w=x;
e[num].u=i;
e[num].v=j;
}
}
}
sort(e+,e+num+,cmp);
for(int i = ; i <= n; ++i) {
for(int j = ; j <= n; ++j) {
if(i == j) dis[i][j] = ;
else dis[i][j] = 1e18;
}
}
for(int i = ; i <= n; ++i) {
fa[i] = i;
}
int u,v;
for(int i = ;i <= num; ++i) {
u = e[i].u;
v = e[i].v;
if(fid(u)!=fid(v))
{
dis[u][v] = dis[v][u] = e[i].w;
tot[++sum] = e[i].w;
fa[fa[u]] = fa[v];
}
}
for(int k = ; k <= n; ++k) {
for(int i = ; i <= n; ++i) {
for(int j = ; j <= n; ++j) {
dis[i][j] = min(dis[i][j], dis[i][k]+dis[k][j]);
}
}
}
for(int i = ; i <= n; ++i) {
for(int j = ; j <= n; ++j) {
if(dis[i][j] != g[i][j]) {
printf("No");
return ;
}
}
}
printf("Yes\n");
sort(tot+,tot+n);
for(int i = ; i < n; ++i) {
printf("%d\n",tot[i]);
}
}
牛客寒假6-I 导航系统的更多相关文章
- 2020牛客寒假算法基础集训营2 J题可以回顾回顾
2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...
- 2020牛客寒假算法基础集训营1 J题可以回顾回顾
2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...
- 欧拉函数-gcd-快速幂(牛客寒假算法基础集训营1-D-小a与黄金街道)
题目描述: 链接:https://ac.nowcoder.com/acm/contest/317/D来源:牛客网小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿 ...
- Applese 的毒气炸弹 G 牛客寒假算法基础集训营4(图论+最小生成树)
链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 Applese 的毒气炸弹 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...
- 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 牛客寒假算法基础集训营3B 处女座的比赛资格(用拓扑排序解决DAG中的最短路)
链接:https://ac.nowcoder.com/acm/contest/329/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客寒假算法基础训练集中营4 E题 Applese 涂颜色
链接:https://ac.nowcoder.com/acm/contest/330/E 来源:牛客网 题目描述 精通程序设计的 Applese 叕写了一个游戏. 在这个游戏中,有一个 n 行 m 列 ...
- 牛客寒假算法基础集训营4 I题 Applese 的回文串
链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...
- 牛客寒假算法基础集训营4 F Applese 的大奖
链接:https://ac.nowcoder.com/acm/contest/330/H来源:牛客网 Applese 和它的小伙伴参加了一个促销的抽奖活动,活动的规则如下:有一个随机数生成器,能等概率 ...
随机推荐
- Liunx 上安装java
linux系统的基本指令 http://www.cnblogs.com/sxdcgaq8080/p/7470796.html ===================================== ...
- css吃豆人动画
一. Css吃豆人动画 1. 上半圆:两个div,内部一个圆div,外部设置宽高截取半圆 外部div动画:animation: 动画样式 1s(时长) ease(动画先低速后快速) infinite( ...
- VMware克隆Linux虚拟机报错
在VMware里克隆了2个centos6.5,执行命令重启网卡服务报以下错误: Bringing up interface eth0: Device eth0 does not seem to be ...
- ASP .NET CORE 源码地址
ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...
- Java自学-多线程 同步synchronized
Java 多线程同步 synchronized 多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题 多线程的问题,又叫Concurrency 问题 步骤 1 : 演示同步问题 假设盖 ...
- HTML <link> 标签 PC移动网站适配
1.在pc版网页上,添加指向对应移动版网址的特殊链接rel="alternate"标记,这有助于百度发现网站的移动版网页所在的位置: <link rel="cano ...
- Linux学习Day2:安装RedHat Linux和新手必须掌握的命令
今天是Linux线上培训的第二天,主要是Linux环境的安装和几个常见命令的学习,具体如下: 一.RHEL7系统的安装 首先是VMware WorkStation 12.0软件的安装,然后是RHEL7 ...
- 使用placeholder属性设置input文本框的提示信息
input文本框中设置提示信息,可以使用placeholder属性 <!DOCTYPE html> <html> <head> <meta charset=& ...
- Android实战项目——家庭记账本(六)
今天完成的主要任务如下: 1.设置页功能的布局 2.云服务器的部署 3.成功将一个本地Javaweb项目部署到阿里云 没什么特别说明的,直接上图: 首先是侧边栏功能的布局: ...
- 就不能换DB吗? 抽象工厂模式
15.1 就不能换DB吗? 15.2 最基本的数据访问程序 namespace 抽象工厂模式 { class Program { static void Main(string[] args) { U ...