CF1204C
CF1204C-Anna, Svyatoslav and Maps
题意:
题目传送门
不想说了,阅读题。
解法:
先用floyd跑出各顶点间的最短路。把p(1)加入答案,然后沿着题目给的路径序列遍历,如果答案中的最后一个顶点到当前遍历到的顶点的最短距离,小于原序列中两点的距离和,则答案加上p(i-1),并且继续遍历路径,遍历完之后在最后加上p(m)
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
#define LL long long
#define N 110
int e[N][N],ans[N*N*N];
int p[N*N*N],n,m,cnt;
void floyd() {
for(int k = 1 ; k <= n ; k++) {
for(int i = 1 ; i <= n ; i++) {
for(int j = 1 ; j <= n ; j++) {
e[i][j] = min(e[i][j],e[i][k] + e[k][j]);
}
}
}
}
int main(){
scanf("%d",&n);
getchar();
for(int i = 1 ; i <= n ; i++) {
for(int j = 1 ; j <= n ; j++) {
char t = getchar();
e[i][j] = (t == '1') ? 1 : INF;
if(i == j) e[i][j] = 0;
}
getchar();
}
scanf("%d",&m);
for(int i = 1 ; i <= m ; i++)
scanf("%d",&p[i]);
floyd();
ans[++cnt] = p[1];
int dis = 0;
for(int i = 2 ; i <= m ; i++) {
dis += e[p[i - 1]][p[i]];
if(dis > e[ans[cnt]][p[i]]){
ans[++cnt] = p[i - 1];
dis = e[ans[cnt]][p[i]];
}
}
ans[++cnt] = p[m];
printf("%d \n",cnt);
for(int i = 1 ; i <= cnt ; i++)
printf("%d ",ans[i]);
//system("pause");
return 0;
}
CF1204C的更多相关文章
随机推荐
- 6-MySQL DBA笔记-查询优化
第6章 查询优化 查询优化是研发人员比较关注也是疑问较多的领域.本章首先为读者介绍常用的优化策略.MySQL的优化器.连接机制,然后介绍各种语句的优化,在阅读本章之前,需要先对EXPLAIN命令,索引 ...
- 【web安全】浅谈web安全之XSS
XSS定义 XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻 ...
- 客户端相关知识学习(九)之h5给app传递数据
方法一: 情况一: if (window.JdAndroid){ window.JdAndroid.setPayCompleted(); window.JdAndr ...
- 初学java3 条件判断
三目运算符 条件? 正确结果:错误结果 if判断 单一条件判断 if(条件){ }else{ } 多种条件判断 if(){ }else if(){ } ... else{ } switch判断 swi ...
- loj 2292「THUSC 2016」成绩单
loj 看着就很区间dp,所以考虑求\(f_{i,j}\)表示区间\([i,j]\)的答案.注意到贡献答案的方式是每次选一个连续段,拿走后剩下的段拼起来继续段,所以转移就考虑从最后一次选的方法转移过来 ...
- SpringBoot实现定时器定时处理任务
最近在项目中遇到了一个问题, 对于新建的活动, 活动设置了开始时间和结束时间, 也就是数据库中的一个状态码的改变而已. 但是,这里就有问题了, 如何去实现到时间更改活动状态呢? 1. 刚开始的时候,我 ...
- for循环中的闭包
// 问题1:判断下面一段代码运行的结果是什么? var data = [] for (var i = 0; i < 3; i++) { data[i] = function() { conso ...
- 基于Groovy编写Ngrinder脚本常用方法
1.生成随机字符串(import org.apache.commons.lang.RandomStringUtils) 数字:RandomStringUtils.randomNumeric(lengt ...
- .net 调用 winapi获取窗口句柄和内容
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...