代码随想录算法训练营第六十二天 | 图论part11

97. 小明逛公园

#include <iostream>
#include <vector>
#include <climits>
#include <fstream>using namespace std;void floyd(vector<vector<vector<int>>>& grid) {int n = grid.size() - 1;for (int k = 1; k <= n; ++k) {for (int i = 1; i <= n; ++i) {for (int j = 1; j <= n; ++j) {grid[i][j][k] = min(grid[i][j][k - 1],grid[i][k][k - 1] + grid[k][j][k - 1]);}}}
}int main() {ifstream infile("input.txt");int n, m;int u, v, w;cin >> n >> m;// grid[i][j][k]代表从i到j且只经过1-k作为中间节点的最小距离vector<vector<vector<int>>> grid(n + 1, vector<vector<int>>(n + 1, vector<int>(n + 1, 10005)));while (m--) {cin >> u >> v >> w;grid[u][v][0] = w;grid[v][u][0] = w;}floyd(grid);int q;cin >> q;int start, end;while (q--) {cin >> start >> end;if (grid[start][end][n] != 10005) cout << grid[start][end][n] << endl;else cout << -1 << endl;}
}

127. 骑士的攻击

#include <iostream>
#include <fstream>
#include <queue>using namespace std;int dir[8][2] = { -2,-1,-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2 };struct Knight {int x, y;int f, g, h;Knight(){}Knight(int x, int y) : x(x), y(y) {}bool operator < (const Knight& k) const { return k.f < f;}
};int Heuristic(Knight &k, int b1, int b2) {return (k.x - b1) * (k.x - b1) + (k.y - b2) * (k.y - b2);
}int astar(Knight& start, int b1, int b2) {int moves[1001][1001] = { 0 };priority_queue<Knight> que;que.push(start);while (que.size()) {Knight k = que.top();Knight next;que.pop();if (k.x == b1 && k.y == b2) return moves[b1][b2];for (int i = 0; i < 8; ++i) {next.x = k.x + dir[i][0];next.y = k.y + dir[i][1];if (next.x < 1 || next.x > 1000 || next.y < 1 || next.y > 1000)continue;if (!moves[next.x][next.y]){moves[next.x][next.y] = moves[k.x][k.y] + 1;// 开始计算Fnext.g = k.g + 5; // 统一不开根号,这样可以提高精度,马走日,1 * 1 + 2 * 2 = 5next.h = Heuristic(next, b1, b2);next.f = next.g + next.h;que.push(next);}}}return -1;
}int main() {ifstream infile("input.txt");int n;cin >> n;while (n--) {int a1, a2, b1, b2;cin >> a1 >> a2 >> b1 >> b2;Knight start(a1, a2);start.g = 0;start.h = Heuristic(start, b1, b2);start.f = start.g + start.h;cout << astar(start, b1, b2) << endl;}infile.close();
}

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

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

相关文章

OZON户外运动产品有哪些好卖的

Top1 运动水壶 Спортивная бутылка 780 мл 商品id&#xff1a;1613789852 月销量&#xff1a;819 OZON热销文具产品&#xff1a;m6z.cn/5H6fQR (复制浏览器打开) 780毫升的容量设计&#xff0c;既不会过于笨重&#xff0c;也能满足用户在运动或户外活…

【自动驾驶】决策规划算法 | 数学基础(二)凸优化与非凸优化

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

初识Linux · 有关makefile

目录 前言&#xff1a; 1 makefile的简单使用 2 makefile介绍 前言&#xff1a; 我们上文介绍了gcc和g的基本使用&#xff0c;带了许多的子指令&#xff0c;但是有的时候啊&#xff0c;一个一个敲指令确实有点麻烦了&#xff0c;此时&#xff0c;一个工具就能派上用场&…

Linux学习-虚拟化平台安装和使用

注&#xff1a;系统使用Rock8.6 下载链接 通过百度网盘分享的文件&#xff1a;cirros.qcow2&#xff0c;node_base.xml等2个文件 链接&#xff1a;https://pan.baidu.com/s/1hupGQsMjrXMgngCy3lQLhw?pwdhlr6 提取码&#xff1a;hlr6[rootharbor ~]# cat /etc/redhat-releas…

Django+Vue宠物服务管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

2024-09-03作业

作业结果 作业代码 #include <iostream> using namespace std; class RMB { friend const RMB operator-(const RMB &L,const RMB &R); friend const RMB operator--(RMB &O,int); private: int yuan; int jiao; int fen; static…

JMeter 安装使用

JMeter 安装使用 a.安装 下载链接:Apache JMeter - Download Apache JMeter 环境变量 打开 cmd 输入 jmeter&#xff0c;即可启动 b.使用 http请求接口 300 个线程设置 1 s 的预热时间 右键 start

SQL Server Service Broker故障排除

如果你的SQL Server Queue无法正常工作&#xff0c;这可能是由于多种原因造成的&#xff0c;比如设置不正确、SQL Server Service Broker存在问题&#xff0c;或者队列本身有问题。以下是一些故障排除步骤&#xff1a; Check SQL Server Service Broker: 你的队列所在的数据…

Netty Reactor面试连环问

写在文章开头 关于Netty一直是笔者比较感兴趣的框架,针对Reactor线程模型面试时,常常会涉及下面这些问题: 有几种Reactor线程模型?Netty如何实现Reactor模型的?为什么Netty 的main reactor只用到一个线程?Netty分配channel的Nio eventLoop规则是什么?通用模式的NIO多路…

如何读懂以太坊源代码

以下是一个学习以太坊源代码的清晰思路&#xff1a; 一、前期准备 基础知识储备&#xff1a; 熟悉区块链的基本概念&#xff0c;如区块、交易、共识机制、哈希函数等。了解 Go 语言&#xff08;以太坊主要使用 Go 语言编写&#xff09;的基本语法和编程概念。 工具准备&#x…

Unity(2022.3.41LTS) - UI详细介绍-Scroll View(滚动视图)

目录 零.简介 一、基本功能与用途 二、主要组件 Rect Transform&#xff08;矩形变换&#xff09;&#xff1a; Scroll Rect&#xff08;滚动矩形&#xff09;组件&#xff1a; Scrollbar&#xff08;滚动条&#xff09;组件&#xff1a; Mask&#xff08;遮罩&#xff…

今天来聊一聊前端框架有哪些呢? 主流Vue和React

使用工具&#xff1a; 联网搜索 前端框架主要包括React.js、Vue.js、Angular等。在现代网络技术的快速发展中&#xff0c;前端框架成为了实现界面美观、交互性强、用户体验佳的网页和应用不可或缺的工具。下面将具体介绍几款目前主流的前端框架&#xff1a; React.js 简介&…

源代码怎么加密防泄漏?9种方法教会你

想做源代码加密防止泄漏&#xff0c;首先要了解程序员可以通过哪些方式将源代码传输出去&#xff01; 程序员泄密的常见方式 物理方法&#xff1a; — 网线直连&#xff0c;即把网线从墙上插头拔下来&#xff0c;然后和一个非受控电脑直连; — winPE启动&#xff0c;通过光盘…

Learning——protobuf的下载

目录 一、protobuf在windows下安装 1.下载地址 2.配置环境变量 ①打开设置 ②搜索框中搜索编译环境变量 ③ 点击“环境变量” ④ 找到PATH并双击打开编辑 ⑤配置环境变量后点击确定 3.检验是否安装成功 二、protobuf在Linux下安装 1.库依赖安装 2.下载地址 我不能使用…

springboot中的请求过滤filter与拦截interceptor分析

首先我们要定义一个类&#xff0c;实现标准的过滤器 import lombok.extern.slf4j.Slf4j;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException;WebFilter("/*") Slf4j public class AuthFilter implements Filter {Overr…

class 6: vue.js 3 组件化开发

组件化开发实际上就是问题拆解&#xff0c;分而治之。将页面拆分为一个个小的功能块&#xff0c;每个功能块负责完成属于自己的独立功能&#xff0c;这使得整个页面的管理和维护就变得非常容易了组件化可以简化开发进程&#xff0c;代码复用率更高&#xff0c;并有利于后期维护…

动态规划-最大子数组和

最大子数组和 题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。子数组是数组中的一个连续部分。 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 示例…

在Nginx上部署前端Vue项目,超级简单!!

Nginx&#xff08;engine x&#xff09; 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也是一个IMAP/POP3/SMTP代理服务器。 Nginx因其高性能、可扩展性、灵活性和免费开源等优势&#xff0c;在现代Web架构中得到了广泛应用。无论是作为Web服务器直接提供服务&…

Elasticsearch 索引模板

文章目录 前言Elasticsearch 索引模板1. 作用2. 示例3. 查询索引模板4. 测试 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的…

validationtools中按键测试选项光标移除

最近处理一个问题&#xff0c;设备有方向键盘&#xff0c;做cit中的按键测试&#xff0c;发现按方向键第一次按键不能触发该键值&#xff0c;而是让屏幕第一个按钮获取焦点&#xff0c;然后再次按键&#xff0c;则其他正常。问题&#xff1a;进入界面第一次按键就要响应对应按键…