【Codeforces 25C】Roads in Berland
2024-10-15 22:34:28
【链接】 我是链接,点我呀:)
【题意】
题意
【题解】
用floyd思想。
求出来这条新加的边影响到的点对即可。
然后尝试更新点对之间的最短路就好。
更新之后把差值从答案里面减掉。
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 300;
int n;
ll dis[N+10][N+10];
int k;
ll ans = 0;
void updata(ll &x,ll y){
if (x>y){
ans-=(x-y);
x = y;
}
}
int main(){
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= n;j++){
cin >> dis[i][j];
if (i<=j) ans += dis[i][j];
}
cin >> k;
for (int i = 1;i <= k;i++){
int x,y,z;
cin >> x >> y >> z;
for (int i1 = 1;i1 <= n;i1++)
for (int i2 = 1;i2<=n;i2++){
updata(dis[x][y],z);
if (dis[x][y]!=dis[y][x]){
dis[y][x] = dis[x][y];
}
updata(dis[i1][i2],dis[i1][x]+dis[y][i2]+z);
if (dis[i1][i2]!=dis[i2][i1]){
dis[i2][i1] = dis[i1][i2];
}
}
cout<<ans<<" ";
}
return 0;
}
最新文章
- andrioid 分享到其它(短信,qq,微信等功能)
- MVC控制器常用方法返回类型
- 利用DescriptionAttribute实现枚举字符串
- Unicode基本概念
- Linux定时任务Crontab命令详解
- nginx与ios实现https双向认证
- Android开机动画启动流程
- android学习4——View的长宽问题
- python端口扫描器
- 【学习总结】Git学习-参考廖雪峰老师教程五-远程仓库
- 一个textview多种颜色
- Python pickle 模块
- tail 尾巴
- BZOJ.1034.[ZJOI2008]泡泡堂(贪心)
- 美国谍梦第一季/全集The Americans迅雷下载
- SO\PR回写的数据如下
- Python第二弹--------类和对象
- cas 退出后跳转指定页面
- 如何在存储过程的IN操作中传递字符串变量
- 【刷题】BZOJ 3238 [Ahoi2013]差异