题目:

题目背景

SOURCE:NOIP2015-SHY-3

题目描述

给定一张 n 个点的有向带权完全图,和一个数组 a[] ,请按顺序删除数组中的点,请求出在删除点 a[i] 以前,所有未删除点对之间的最短路的值的和。

输入格式

第一行一个整数 n ,表示点数;
接下来 n 行,每行 n 个数构成邻接矩阵,描述每条边的权值,保证 i 号点到 i 号点的权值为 0 ;
最后一行 n 个小于等于 n 的不同的数,描述数组 a[]。

输出格式

输出 1 行 n 个数,表示答案。

样例数据 1

输入  [复制]

 


0 3 1 1 
6 0 400 1 
2 4 0 1 
1 1 1 0 
4 1 2 3

输出

17 23 404 0

备注

【数据范围】
对 30% 的输入数据 :1≤n≤10 ;
对 100% 的输入数据 :1≤n≤500;0<权值≤100000 。

题解:

先转变成倒插入数字的问题,再用floyd算最短距离:n方算之前的插入的点到当前点的最短距离,和当前点到之前插入的点的最短距离,最后再用n方算经过当前点的路径的最短距离

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int N=;
long long dis[N][N];
int n,num[N],ans[N];
int main()
{
//freopen("a.in","r",stdin);
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%d",&dis[i][j]);
for(int i=;i<=n;i++)
scanf("%d",&num[i]);
reverse(num+,num+n+);
for(int i=;i<=n;i++)
{
if(i==)
{
ans[i]=;
continue;
}
for(int k=;k<=i-;k++)
for(int j=;j<=i-;j++)
{
dis[num[j]][num[i]]=min(dis[num[j]][num[i]],dis[num[j]][num[k]]+dis[num[k]][num[i]]);
dis[num[i]][num[j]]=min(dis[num[i]][num[j]],dis[num[i]][num[k]]+dis[num[k]][num[j]]);
}
for(int k=;k<=i-;k++)
for(int j=;j<=i-;j++)
dis[num[k]][num[j]]=min(dis[num[k]][num[j]],dis[num[k]][num[i]]+dis[num[i]][num[j]]);
for(int k=;k<=i;k++)
for(int j=;j<=i;j++)
ans[i]+=dis[num[k]][num[j]];
}
for(int i=n;i>=;i--)
cout<<ans[i]<<" ";
return ;
}

最新文章

  1. 数据库一些常用的SQL语句
  2. 【JAVA反射机制】
  3. c# 后台调前台的js
  4. javaweb回顾第一篇servlet的学习和理解
  5. 【Django】Django 文件下载最佳实践
  6. 关于.net中的脚本语言使用
  7. Linux下GPIO驱动(三) ----gpio_desc()的分析
  8. C/C++基础概念
  9. (一)phoneGap之环境搭建教程及其example分析
  10. java 笔记 Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别
  11. 不规则的JSON解析(一)
  12. 设计模式(七)Adapter Pattern适配器模式
  13. vue 运行npm run dev报错
  14. Debian 鼠标左右手
  15. python之celery使用详解一
  16. 五、Delphi10.3通过REST单元使类和JSON数据互相转换
  17. DDR3调试总结
  18. LI 标签中让文章标题左对齐,日期右对齐的方法
  19. Linux下的Backlight子系统(二)【转】
  20. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面快速入门 TC2

热门文章

  1. http协议参数详解
  2. NBUT 1116 Flandre&#39;s Passageway (LIS变形)
  3. 迅为10.1寸人机界面工业HMI安卓电容屏定制生产供应商
  4. java 读取文件转换成字符串
  5. android stuido ndk 开发
  6. webpack devserver的说明
  7. MySQL插入SQL语句后在phpmyadmin中注释显示乱码
  8. nodejs 设置安装包路径的取消和安装cnpm
  9. 洛谷 P2921 在农场万圣节
  10. CF-1096C Polygon for the Angle