YbtOJ#20078-[NOIP2020模拟赛B组Day7]路径之和【分治,Flody】
正题
题目链接:http://noip.ybtoj.com.cn/contest/108/problem/4
题目大意
nnn个点,每次只封闭一个点,求剩下点对两两之间的最短路和。
解题思路
FlodyFlodyFlody中如果枚举kkk时不管某一个点,那么就可以求不经过那个点的路径。考虑分治求解
我们每次处理到[l,r][l,r][l,r]时我们先计算出[mid+1,r][mid+1,r][mid+1,r]的贡献(也就是枚举这里的kkk),然后递归到[l,mid][l,mid][l,mid]的区间。处理完后清除[mid+1,r][mid+1,r][mid+1,r]的贡献在处理[l,mid][l,mid][l,mid]的贡献递归到[mid+1,r][mid+1,r][mid+1,r]区间。
这样当l=rl=rl=r时只有lll这个位置没有处理贡献,就可以统计答案了。
时间复杂度O(n3logn)O(n^3\log n)O(n3logn)
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=321;
ll n,f[N][N],ans,g[30][N][N];
void solve(ll dep,ll l,ll r){if(l==r){for(ll i=1;i<=n;i++)for(ll j=1;j<=n;j++){if(i==l||j==l)continue;if(f[i][j]<1e18)ans+=f[i][j];else ans--;}return;}ll mid=(l+r)>>1;memcpy(g[dep],f,sizeof(g[dep]));for(ll k=mid+1;k<=r;k++)for(ll i=1;i<=n;i++)for(ll j=1;j<=n;j++)f[i][j]=min(f[i][j],f[i][k]+f[k][j]);solve(dep+1,l,mid); memcpy(f,g[dep],sizeof(f));for(ll k=l;k<=mid;k++)for(ll i=1;i<=n;i++)for(ll j=1;j<=n;j++)f[i][j]=min(f[i][j],f[i][k]+f[k][j]);solve(dep+1,mid+1,r);return;
}
int main()
{freopen("sum.in","r",stdin);freopen("sum.out","w",stdout);scanf("%lld",&n);for(ll i=1;i<=n;i++){for(ll j=1;j<=n;j++){scanf("%lld",&f[i][j]);if(f[i][j]==-1)f[i][j]=1e18;}}solve(0,1,n);printf("%lld",ans);
}
YbtOJ#20078-[NOIP2020模拟赛B组Day7]路径之和【分治,Flody】相关推荐
- YbtOj#20073. 「NOIP2020 模拟赛 B 组 Day6」钻石守卫
文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...
- YbtOJ#20237-[冲刺NOIP2020模拟赛Day10]区间均值【树状数组】
正题 题目链接:https://www.ybtoj.com.cn/contest/68/problem/1 题目大意 nnn个数字的序列,求有多少个区间[l,r][l,r][l,r]的平均值在[L,R ...
- YbtOJ#20240-[冲刺NOIP2020模拟赛Day10]弱者对决【笛卡尔树,区间dp】
正题 题目链接:https://www.ybtoj.com.cn/contest/68/problem/4 题目大意 mmm个三元组(ai,bi,ci)(a_i,b_i,c_i)(ai,bi,ci ...
- YbtOJ#20239-[冲刺NOIP2020模拟赛Day10]连边方案【状压dp】
正题 题目链接:https://www.ybtoj.com.cn/contest/68/problem/3 题目大意 求有多少个nnn个点mmm条边的无向图满足 有连边的点之间编号差不超过kkk 所有 ...
- YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】
正题 题目链接:https://www.ybtoj.com.cn/contest/66/problem/4 题目大意 平面上nnn个红点,nnn个蓝点,对于没一个红点求一个与它纵坐标距离不超过ddd的 ...
- YbtOJ#20235-[冲刺NOIP2020模拟赛Day9]公共序列【dp】
正题 题目链接:https://www.ybtoj.com.cn/contest/66/problem/3 题目大意 给出两个字符串A,BA,BA,B,求它们的最长公共子序列. 解题思路 先考虑朴素的 ...
- YbtOj 冲刺 NOIP2020 模拟赛 Day10 T1 区间均值
文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...
- 2021.08.09【普及组】模拟赛C组比赛总结
文章目录 2021.08.09[普及组]模拟赛C组比赛总结 写在前面: T1 :[普及模拟]生产武器 题目大意: 正解: T2 :[普及模拟]城市连接 题目大意: 正解: T3 :[普及模拟]抢救文件 ...
- 2021-07-17【普及组】模拟赛C组
文章目录 2021.07.17[普及组]模拟赛C组 写在前面: T1: 题目大意: 正解: T2: 题目大意: 正解: T3: 题目大意: 正解: T4: 题目大意: 正解: 2021.07.17[普 ...
最新文章
- 数据链路层、交换机内容整合
- 使用U盘安装Windows Server2008
- python监控文件内容变化_Python监控文件内容变化
- [转载] 多线程详解java.util.concurrent
- php 设置返回的类型是图片,PHP检查上传的图片并返回图片的真正类型【扩展名】...
- 马化腾300万奖励中国女排 网友:马云老师清空购物车还安排吗?
- python 异步IO编程
- 电子沙盘技术和android,ERP沙盘与电子沙盘的区别
- ubuntu如何更改IP地址
- python三维雷达图_Matplotlib绘制雷达图和三维图的示例代码
- 【微信小程序】之自定义顶部导航页签
- 多元随机森林回归(Multivariate Random Forest Regreesor)经验总结
- 学习记录:jmeter添加jp@gc - Hits per Second
- 在windows生成SSH秘钥连接linux远程主机
- app营销变现系统,让你的app更值钱!
- 主要视频压缩技术在中国内地市场发展分析
- Typora旧版本下载以及提示无法使用需要更新
- MySql 不存在则插入,存在则更新或忽略
- 基于JSP的健身俱乐部会员管理系统的设计与实现(论文+PPT+源码)
- 细说Python的lambda函数用法,建议收藏
热门文章
- oracle取位置,获取oracle trace文件路径
- ab压力测试_Apache ab压力测试的知识点
- java 固定长度队列_如何彻底搞懂 Java 数据结构?|CSDN 博文精选
- 数据结构——图-最短路径长度中最大的一个
- leetcode977. 有序数组的平方(暴力+双指针)
- [Redis6]NoSQL数据库简介_特点
- [Spring5]IOC容器_Bean管理XML方式_外部属性文件
- [SpringBoot2]自动配置
- [计组]寄存器的基本含义
- [PAT乙级]1009 说反话