【算法】图论,最短路?

【题意】原图为无向连通图,现给定原图的最短路矩阵,求原图最小边权和,n<=300。

【题解】要求最小边权和下,原图的所有边一定是所连两端点的最短路。

那么现在将所有最短路作为边加入原图,考虑删边。

对于(u,v),若存在点w使得(u,v)=(u,w)+(w,v),则(u,v)可以删去。(btw,若是>则无解)

复杂度O(n^3)。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
int read(){char c;int s=0,t=1;while(!isdigit(c=getchar()))if(c=='-')t=-1;do{s=s*10+c-'0';}while(isdigit(c=getchar()));return s*t;
}
/*------------------------------------------------------------*/
const int inf=0x3f3f3f3f,maxn=310;int n,map[maxn][maxn],f[maxn][maxn];int abs(int x){return x>0?x:-x;}
int main(){n=read();for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)map[i][j]=read(),f[i][j]=map[i][j];bool ok=1;for(int i=1;i<n;i++){for(int j=i+1;j<=n;j++){for(int k=1;k<=n;k++)if(i!=k&&j!=k){if(map[i][j]>map[i][k]+map[k][j])ok=0;if(map[i][j]==map[i][k]+map[k][j])f[i][j]=f[j][i]=0;}}}long long ans=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)ans+=f[i][j];if(ok)printf("%lld",ans/2);else printf("-1");return 0;
}

View Code

转载于:https://www.cnblogs.com/onioncyc/p/7535216.html

【Atcoder】ARC083 D - Restoring Road Network相关推荐

  1. Restoring Road Network(弗洛伊德算法的使用)

    Restoring Road Network(中石油6610) 弗洛伊德算法的使用. 代码: #include <iostream> using namespace std; const ...

  2. Restoring Road Network 反证最短路

    问题 C: Restoring Road Network 时间限制: 1 Sec  内存限制: 128 MB 提交: 438  解决: 89 [提交] [状态] [讨论版] [命题人:admin] 题 ...

  3. 【GANs】Deep Convolution Generative Adversarial Network

    [GANs]Deep Convolution Generative Adversarial Network 3 DCGAN 3.1 简介 3.2 DGGAN实现 3 DCGAN Unsupervise ...

  4. Restoring Road Network

    问题 C: Restoring Road Network 时间限制: 1 Sec  内存限制: 128 MB 提交: 981  解决: 220 [提交] [状态] [讨论版] [命题人:admin] ...

  5. 【AtCoder】ARC 081 E - Don't Be a Subsequence

    [题意]给定长度为n(<=2*10^5)的字符串,求最短的字典序最小的非子序列字符串. http://arc081.contest.atcoder.jp/tasks/arc081_c [算法]字 ...

  6. 【SFace】《SFace: An Efficient Network for Face Detection in Large Scale Variations》

    arXiv-2018 文章目录 1 Background and Motivation 2 Advantages / Contributions 3 Method 3.1 Feature Pyrami ...

  7. 【ConfluxNews】2023.2.23 Conflux Network 与 Alchemy Pay 达成合作

    1.[网络状态]当前版本V2.2.1-fixpos,全网算力≈14T,昨日交易次数51K,昨日新增账户2.81K,昨日新增合约6个: 2.[POS参数]总锁仓187M(-5),节点总数250,年利率1 ...

  8. 【AtCoder】ARC095 E - Symmetric Grid 模拟

    [题目]E - Symmetric Grid [题意]给定n*m的小写字母矩阵,求是否能通过若干行互换和列互换使得矩阵中心对称.n,m<=12. [算法]模拟 [题解]首先行列操作独立,如果已确 ...

  9. 【atcoder】Enclosed Points [abc136F]

    题目传送门:https://atcoder.jp/contests/abc136/tasks/abc136_f 题目大意:在平面上有$n$个点我们,定义一个点集的权值为平面上包含这个点集的最小矩形所包 ...

最新文章

  1. 设计模式之【抽象工厂模式】
  2. 【Clickhouse】问题记录
  3. Color the ball HDU - 1556 (线段树)
  4. 中国自研数据库拿下世界第一,背后这十年都经历了什么?
  5. “pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘
  6. 前端 页面无刷新方案一
  7. 浅谈WebService的版本兼容性设计
  8. 地址转换函数(点分十进制与网络字节序的二进制)
  9. 计算机键盘怎样做除法,电脑键盘除法是哪个键?
  10. c语言选择结构程序设计实验总结,C语言程序设计,选择结构程序设计实验
  11. SQL常用基础参考语句
  12. 重温张欣穗购书衷心与申霞艳,张鸿等名师座谈《千万与春住》二零一九年六月二十四日
  13. python程序设计与案例教程王小银_《Python程序设计与案例教程》王小银著【摘要 书评 在线阅读】-苏宁易购图书...
  14. torch.bmm() 与 torch.matmul()
  15. KEIL软件错误代码及错误信息
  16. 对计算机的认识与感想
  17. 如果说,人生是一次不断选择的旅程,那么当千帆阅尽,最终留下的就是一片属于自己的,独一无二的风景。
  18. MADA DAMD
  19. 利用Verilog计算IQ信号相位的一种方法
  20. 计算机网络基础面试题笔记

热门文章

  1. mongodb数据合并设计_MongoDB:如何将来自多个集合的数据合并成一个.?
  2. Spark任务提交源码
  3. Flutter开发之JSON及序列化(29)
  4. Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题(转载)
  5. 尺取法 || emmmm
  6. netty使用从0到1
  7. 同一个IP不同端口号使用session失效
  8. A Bug's Life(向量偏移)
  9. 【狼】unity3d point light 个数限制更改
  10. (转)测测你是否有搜索引擎依赖症