Codeforces 773D Perishable Roads 最短路 (看题解)

Perishable Roads

智商题, 不会啊。。 

贴个官方题解

https://codeforces.com/blog/entry/51883

#include<bits/stdc++.h>
#define LL long long
#define LD long double
#define ull unsigned long long
#define fi first
#define se second
#define mk make_pair
#define PLL pair<LL, LL>
#define PLI pair<LL, int>
#define PII pair<int, int>
#define SZ(x) ((int)x.size())
#define ALL(x) (x).begin(), (x).end()
#define fio ios::sync_with_stdio(false); cin.tie(0);using namespace std;const int N = 2000 + 7;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-8;
const double PI = acos(-1);template<class T, class S> inline void add(T &a, S b) {a += b; if(a >= mod) a -= mod;}
template<class T, class S> inline void sub(T &a, S b) {a -= b; if(a < 0) a += mod;}
template<class T, class S> inline bool chkmax(T &a, S b) {return a < b ? a = b, true : false;}
template<class T, class S> inline bool chkmin(T &a, S b) {return a > b ? a = b, true : false;}int n, mine = inf, G[N][N], d[N];
bool vis[N];int main() {scanf("%d", &n);for(int i = 1; i <= n; i++) {for(int j = i + 1; j <= n; j++) {scanf("%d", &G[i][j]);G[j][i] = G[i][j];chkmin(mine, G[i][j]);}}for(int i = 1; i <= n; i++) {for(int j = i + 1; j <= n; j++) {G[i][j] -= mine;G[j][i] -= mine;}}for(int i = 1; i <= n; i++) {d[i] = inf;for(int j = 1; j <= n; j++) {if(i != j) {chkmin(d[i], G[i][j] << 1);}}}d[0] = inf;for(int i = 1; i <= n; i++) {int p = 0;for(int j = 1; j <= n; j++) {if(!vis[j] && d[j] < d[p]) {p = j;}}for(int j = 1; j <= n; j++) {chkmin(d[j], d[p] + G[p][j]);}vis[p] = true;}for(int i = 1; i <= n; i++) printf("%lld\n", 1LL * (n - 1) * mine + d[i]);return 0;
}/*
*/

 

转载于:https://www.cnblogs.com/CJLHY/p/11098059.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rancher中的服务升级实验

创建一个空的应用myAPP&#xff0c;在myAPP 应用中&#xff0c;创建一个服务nginx-test&#xff0c;包含2个容器副本&#xff0c;使用nginx:1.13.0镜像。假设使用一段时期以后&#xff0c;nginx的版本升级到1.13.1了&#xff0c;如何将该服务的镜像版本升级到新的版本&#xff…

该如何高效实用Kotlin?看这一篇就够了!

前言 说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香&#xff0c;bat、华为小米等公司程序员加班情况被广泛传播&#xff0c;程序员用生命在敲代码的印象刻在了很多人的心里。 与其它行业一样&#xff0c;凡是有高级和普通&…

apply()与call()

JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法&#xff0c;它们的语法分别为&#xff1a; /*apply()方法*/ function.apply(thisObj[, argArray])/*call()方法*/ function.call(thisObj[, arg1[, arg2[, [,...argN]]]]); 它们各自的定义&#xff1a; a…

Java基于redis实现分布式锁(SpringBoot)

前言 分布式锁&#xff0c;其实原理是就是多台机器&#xff0c;去争抢一个资源&#xff0c;谁争抢成功&#xff0c;那么谁就持有了这把锁&#xff0c;然后去执行后续的业务逻辑&#xff0c;执行完毕后&#xff0c;把锁释放掉。 可以通过多种途径实现分布式锁&#xff0c;例如…

请谈下Android消息机制,复习指南

谈起Android框架体系架构&#xff0c;我先提个问&#xff1a;什么是Android框架体系架构 &#xff1f; Android系统构架是安卓系统的体系结构&#xff0c;android的系统架构和其操作系统一样&#xff0c;采用了分层的架构&#xff0c;共分为四层&#xff0c;从高到低分别是And…

SVN Cannot merge into a working copy that has local modifications

我尝试了 主支&#xff0c;分支都提交&#xff0c;但是依然无法合并。 最终&#xff0c;我在服务器上将分支删除&#xff0c;然后主支在拷贝过去。 一&#xff0c;打开服务器资源 二&#xff0c;删除分支 三&#xff0c;拷贝主支到分支 四&#xff0c;刷新分支&#xff0c;就能…

资深Android开发带你入门Framework,再不刷题就晚了!

想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样。 本文参考了目前大部分 Android 应用启动优化的方案&#xff0c;将大家的方案做一个汇总&#xff0c;如果你有这方面的需求&#xff0c;只…

K8S相关内容

常用工具&#xff1a;docker linux k8s kubeadm 概念 etcd 数据库 类似redis api server 接口对外提供api 调用 可以命令 kubectl 或者 kube-proxy&#xff0c;能访问etcd&#xff0c;事件总线 scheduler 调度决策的组件 掌握新的情况&#xff0c;进行决策及分布pod放在哪些n…

资深Android开发带你入门Framework,架构师必备技能

开头 先说一下我大概的情况吧。渣本毕业&#xff0c;工作已经有快两年了&#xff0c;从高中就开始玩小破站。无论是学习还是日常放松都是在b站。大学主学的软件技术专业&#xff0c;所以&#xff0c;进大学校门那一刻起&#xff0c;去上海bilibili工作就在心里埋下了种子。在学…

Java——线程锁,死锁,等待唤醒机制

一、线程锁 线程安全问题 其实&#xff0c;线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作&#xff0c;而无写操作&#xff0c;一般来说&#xff0c;这个全局变量是线程安全的&#xff1b;若有多个线程同时执行写操作&#xff0c;…

资深大牛带你了解源码!关于Android程序员最近的状况,大厂内部资料

前言 回顾一下自己这段时间的经历&#xff0c;因公司突然通知裁员&#xff0c;我匆匆忙忙地出去面了几家&#xff0c;但最终都没有拿到offer&#xff0c;我感觉今年的寒冬有点冷。公司开始第二波裁员&#xff0c;我决定主动拿赔偿走人。后续的面试过程我做了一些准备&#xff…

AE 新建项目(一)(持续更新,做到哪算哪)

开发环境 工具&#xff1a;Visual Studio 2012、ArcEngine10.4.1 语言&#xff1a;C# 开发步骤 1、打开Visual Studio 2012&#xff0c;选择新建项目&#xff0c;创建一个.NET Framework4的&#xff0c;Windows窗体应用程序。取名Demo 2、工具箱中&#xff0c;拖一个splitConta…

基于redis分布式锁实现的多线程并发程序

前两个版本的代码 都或多或少存在一定的问题&#xff0c;虽然可能微乎其微&#xff0c;但是程序需要严谨再严谨&#xff0c; 第一个版本问题&#xff1a; 局限于单机版&#xff0c;依赖于 Jvm的锁 第二个版本问题&#xff1a; 极端情况下&#xff0c;解锁逻辑的问题&#xf…

day15 Ui自动化元素的定位

day15 元素的定位Ui自动化元素的定位1、火狐浏览器安装try xpath2、元素定位思路&#xff1a;&#xff08;1&#xff09;查看页面元素&#xff0c;确认能够唯一定位到元素的属性&#xff0c;比如id&#xff0c;文案3、学习xpath cssSelector 手写定位方式xpath&#xff08;xpat…

几张图可以理解GC JVM调优的内容

public class ApiPurchaseOrderServiceApp {public static void main(String[] args) throws Exception {ApiPurchaseOrderServiceApp mnew ApiPurchaseOrderServiceApp();m.compute();//栈System.out.println("ok");//方法出口}public int compute(){int a1;//局部…

灵魂拷问!一起刷完了这份1307页的安卓面试宝典吧,不吃透都对不起自己

前言 每个程序员都有一个梦想&#xff0c;那就是进一线互联网公司深造&#xff0c;不要跟我说你不想进去&#xff0c;如果给你一个这样的平台&#xff0c;不管是薪资待遇还是接触的高度来说&#xff0c;对我们程序员来说都是一个机会&#xff0c;我以前有一个同事&#xff0c;…

ShardingSphere分库分表实战

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar&#xff08;计划中&#xff09;这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能&#xff0c;可适用于…

灵魂拷问!细数Android开发者的艰辛历程,成功入职阿里

什么是中年危机 根据权威数据显示&#xff0c;国内IT程序员鼎盛时期是在25-27岁左右&#xff0c;30岁对于程序员而言完全是一个38线&#xff0c;接着就是转业转岗的事情&#xff0c;这一点在业界也算是一个共识了。 大学毕业步入IT行业普遍年龄也是在22岁左右&#xff0c;然而…

React 深度学习:ReactFiber

packages/react-reconciler/src/ReactFiber.js Fiber // A Fiber is work on a Component that needs to be done or was done. There can // be more than one per component. // Fiber 是 Component 上需要完成或已经完成工作。每个组件可以有多个 fiber。 export type Fiber…

JMM模型到并发编程

电脑&#xff1a;内存 L1 L2 L3 缓存 CPU ctrlatldel就可以看到 Java 有线程内存&#xff0c;在执行线程的时候&#xff0c;会从主内存把变量加载到工作内存&#xff08;缓存&#xff09;&#xff0c;所以&#xff0c;在多线程同时改变一个静态变量时候&#xff0c;实际是分开…