【Floyd】CF1204 Anna, Svyatoslav and Maps

news2024/12/23 23:11:37

看错题意了一直看不懂题解浪费了好多时间...

 

思路:

先去考虑特殊的地方:

100

子序列

最短路径

一个个剖析:

100:考虑Floyd

子序列:DP?不懂

最短路径:考虑Floyd

我们要求的是子序列的方案,所以不大可能是DP

注意看它求的是什么,是按照子序列这种顺序跑,一定经过的是p这个路径

p这个路径保证是图中一个路径

换言之,是要删掉一些点,这些点满足:

一定在子序列的最短路径上

所以我们要删掉的是在最短路上的点!

那么考虑Floyd的松弛过程,当cur<dis时该点在最短路径上,所以删

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int mxn=1e6+10;
const int mxe=1e6+10;

int N,M;
int dis[110][110],p[mxn];
string s[110];

void solve(){
	cin>>N;
	for(int i=1;i<=N;i++){
		for(int j=1;j<=N;j++){
			if(i==j) dis[i][j]=0;
			else dis[i][j]=1e18;
		} 
	}
	for(int i=1;i<=N;i++) cin>>s[i],s[i]=" "+s[i];
	for(int i=1;i<=N;i++){
		for(int j=1;j<=N;j++){
			if(s[i][j]=='1') dis[i][j]=1;
		}
	}
	for(int k=1;k<=N;k++){
		for(int i=1;i<=N;i++){
			for(int j=1;j<=N;j++){
				dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
			}
		}
	}
	cin>>M;
	for(int i=1;i<=M;i++) cin>>p[i];
	vector<int> v;
	v.push_back(p[1]);
	int last=p[1],cur=0;
	for(int i=2;i<=M;i++){
		cur+=dis[p[i-1]][p[i]];
		if(cur>dis[last][p[i]]){
			last=p[i-1];
			v.push_back(last);
			cur=dis[last][p[i]];
		}
	}
	v.push_back(p[M]);
	cout<<v.size()<<'\n';
	for(int i=0;i<v.size();i++) cout<<v[i]<<" \n"[i==v.size()-1];
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int __=1;//cin>>__;
	while(__--)solve();return 0;
}

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

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

相关文章

【MySQL 8.0】搭建一个使用 SSL 加密的 MySQL 主从复制拓扑(基于 Binlog 行复制)

文章目录 先决条件搭建配置源、副本服务器选项文件 验证启用了 SSL 连接创建复制用户获取复制源服务器的二进制日志坐标配置复制源开启复制 验证进阶 之前&#xff0c;我们一起搭建了一个极简 MySQL 主从复制拓扑&#xff08;基于 Binlog 行复制&#xff09;&#xff0c;这是一…

请问这个网址怎么用httpx 把json数据取出来

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 空山新雨后&#xff0c;天气晚来秋。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python铂金群【gyx】问了一个Python网络爬虫处理的问题&#xf…

【JavaEE】认识线程

目录 1、什么是线程 2、为什么引入线程 2.1、线程的优缺点 3、CPU的工作原理 4、线程和进程的关系 4.1、线程和进程的入口函数 4.2、线程独享的资源 1、什么是线程 一个进程中可以有一个或者多个线程&#xff0c;每个线程都是一个独立的执行流。多个线程之间&#xff0c;也…

嵌入式开发--无刷电机学习3--帕克变换

帕克变换的物理意义 前面说到克拉克变换的物理意义&#xff0c;是将三相定子线圈产生磁场的过程&#xff0c;等效为2个正交放置的线圈&#xff0c;来产生同样的磁场。通过控制这两个正交线圈即可等效控制三相定子线圈。 还有一个问题&#xff0c;定子线圈产生的磁场&#xff…

集群与存储

所谓集群就是通过高速网络将很多服务器集中起来一起提供一种服务&#xff0c;在客户端看起来就是只有一个服务器 任务调度是集群中的核心系统 HPC高性能计算集群 LB负载均衡 HA高可用 LVS工作模式 NAT 网络地址转换 -m DR 路由模式 节点需要VIP -g TUN 隧道模式 -i 调度…

「Codeforces」D. Big Brush

D. Big Brush https://codeforces.com/contest/1638/problem/D 题目描述 给你一张 n m n\times m nm 大的网格纸&#xff0c;你有一把 2 2 2 \times 2 22 的刷子&#xff0c;每次只能涂满这么多&#xff0c;即 ( i , j ) 、 ( i 1 , j ) 、 ( i , j 1 ) 、 ( i 1 , j …

第二十二章 光照贴图

光照贴图过程将预先计算场景中静态物体表面的亮度&#xff0c;并将结果存储在称为“光照贴图”的纹理中供以后使用。光照贴图可以包含直接光照和间接光照&#xff0c;以及阴影效果。但是&#xff0c;烘焙到光照贴图中的数据无法在运行时更改&#xff0c;这就是为什么移动静态物…

Python入门教程+项目实战-12.1节: 字典的基础概念

目录 12.1.1 理解字典类型 12.1.2 字典的类型名 12.1.3 字典的定义 12.1.4 在循环中遍历字典 12.1.5 字典的键类型 12.1.6 知识要点 12.1.7 系统学习python 12.1.1 理解字典类型 在日常生活中&#xff0c;我们常常会接触到“字典”这种数据类型&#xff0c;例如一本书籍…

排序篇:直接插入、希尔、直接选择和堆排序(C语言)

目录 前言&#xff1a; 一&#xff1a;插入排序 (1)直接插入排序 基础思路(有个印象就行&#xff0c;主要看单趟)&#xff1a; 单趟排序&#xff1a; 完整排序&#xff1a; 时间复杂度分析&#xff1a; (2)希尔排序 基础思路(有个印象就行&#xff0c;主要看单趟)&#…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】D 题 航空安全风险分析和飞行技术评估问题 27页论文及代码

【2023 年第十三届 MathorCup 高校数学建模挑战赛】D 题 航空安全风险分析和飞行技术评估问题 27页论文及代码 1 题目 D 题 航空安全风险分析和飞行技术评估问题 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展&#xff0c;针对飞行安全问题的研究显得…

网络编程 总结一

一、网络基础&#xff1a; 概念&#xff1a;1> 网络编程的本质就是进程间的通信&#xff0c;只不过进程分布在不同的主机上 2>在跨主机传输过程中&#xff0c;需要确定通信协议后&#xff0c;才可以通信 1. OSI体系结构&#xff08;重点&#xff09; 定义7层模型&…

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号&#xff0c;不少技术圈的朋友和我闲聊说&#xff0c;ChatGPT账号不能注册了。 我不以为然&#xff0c;自己有一个号足够了&#xff0c;并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了&#xff0c;因为老美要封锁…

Java笔记_15(不可变集合、Stream流、方法引用)

Java笔记_15 一、创建不可变集合1.1、创建不可变集合的应用场景1.2、创建不可变集合的书写格式 二、Stream流2.1、体验Stream流2.2、Stream流的思想和获取Stream流2.3、Stream流的中间方法2.4、Stream流的终结方法2.5、收集方法collect2.6、练习-数字过滤2.7、练习-字符串过滤并…

Python词云图的制作与案例分享(包含 wordcloud 和 jieba库)

一、基本知识 Python 有很多可用于制作词云图的库&#xff0c;其中比较常用的有 wordcloud 和 jieba。 wordcloud 是一个用于生成词云图的 Python 库&#xff0c;其使用了 Python 的 PIL 库和 numpy 库。您可以使用 pip 命令来安装 wordcloud 库&#xff1a; pip install wo…

第12章 项目沟通管理和干系人管理

文章目录 12.1.2 沟通的方式 404沟通管理计划的编制过程12.2.2 制订沟通管理计划的工具 4114、沟通方法 12.3.2 管理沟通的工具 41312.4.2 控制沟通的技术和方法 4163、会议 12.5.1 项目干系人管理所涉及的过程 420项目干系人管理的具体内容&#xff1a;&#xff08;1&#xff…

从“青铜”到“王者”,制造企业的数字化闯关记

打过游戏的朋友可能有一个常识&#xff0c;越是精彩纷呈、奖励丰厚的副本&#xff0c;越是需要召集队友一同组团闯关。很多实体企业在数字化转型中&#xff0c;也不会单打独斗&#xff0c;一把手会先找咨询公司对企业内外情况进行调研、梳理、规划&#xff0c;提出一个顶层规划…

科学计算库—numpy随笔【五一创作】

文章目录 8.1、numpy8.1.1、为什么用 numpy&#xff1f;8.1.2、numpy 数据类型推理8.1.3、numpy 指定长度数组快速创建8.1.4、numpy 哪个是行、列&#xff1f;8.1.5、numpy 如何进行数据类型转换&#xff1f;8.1.6、numpy 有几种乘法&#xff1f;8.1.7、numpy 索引和切片操作8.…

2023年前端面试题汇总-代码输出篇

1. 异步 & 事件循环 1. 代码输出结果 const promise new Promise((resolve, reject) > {console.log(1);console.log(2); }); promise.then(() > {console.log(3); }); console.log(4); 输出结果如下&#xff1a; 1 2 4 promise.then 是微任务&#xff0c;它…

【今日重磅—国产大模型首批内测机会来了】什么是讯飞星火,如何获得内测和使用方法

♥️作者&#xff1a;白日参商 &#x1f935;‍♂️个人主页&#xff1a;白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

数电实验:Quartus II 软件使用 (八进制计数器和全加器)

一、实验目的&#xff1a; 1.熟悉可编程逻辑器件的设计工具Quartus II 软件的使用。 2.熟悉FPGA开发实验系统的软件环境&#xff0c;掌握各个菜单和图标的作用和功能。 二、实验内容 &#xff08;1&#xff09;以74160实现八进制计数器为例&#xff0c;学Quartus II 软件的…