Codeforces Round 929 (Div. 3) F. Turtle Mission: Robot and the Earthquake

题目

题解:

按题解思路的代码:

#include <bits/stdc++.h>using i64 = long long;void solve() {int n, m;std::cin >> n >> m;std::vector a(n, std::vector<int>(m));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {std::cin >> a[i][j];}}std::queue<std::pair<int, int>> q;std::vector dis(n, std::vector(m, -1));q.emplace(0, 0);dis[0][0] = 0;while (!q.empty()) {auto [x, y] = q.front();q.pop();if (y < m - 1 && a[(x + 1) % n][y + 1] == 0 && dis[(x + 1) % n][y + 1] == -1) {dis[(x + 1) % n][y + 1] = dis[x][y] + 1;q.emplace((x + 1) % n, y + 1);}if (a[(x + 1) % n][y] == 0 && a[(x + 2) % n][y] == 0 && dis[(x + 2) % n][y] == -1) {dis[(x + 2) % n][y] = dis[x][y] + 1;q.emplace((x + 2) % n, y);}}int ans = -1;for (int i = 0; i < n; i++) {int res = dis[i][m - 1];if (res != -1) {if (res % n != (i + 1) % n) {res += (i + 1 - res % n + n) % n;}if (ans == -1 || ans > res) {ans = res;}}}std::cout << ans << "\n";
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;while (t--) {solve();}return 0;
}

另一种方法:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p << 1 | 1
#define ll long long
#define pii pair<int, int>
#define ld long double
const int maxn = 1e6 + 5, inf = 1e18, maxm = 4e4 + 5, base = 37;
const int N = 2e6;
const int mod = 1e9 + 7;
// const int mod = 998244353;
// const __int128 mod = 212370440130137957LL;
int n, m;//long long ? maxn ? n? m?
void solve(){ll res = 0;int k;cin >> n >> m;// vector<int> a(n + 1);// for(int i = 1; i <= n; i++){// 	cin >> a[i];// }vector<vector<int>> a(n + 1, vector<int>(m + 1)), dis(n + 1, vector<int>(m + 1, inf));for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){cin >> a[i][j];}}queue<pii> q;dis[0][0] = 0;q.push({0, 0});while(!q.empty()){auto [x, y] = q.front();q.pop();int nx = (x + 1) % n, ny = y;if(dis[nx][ny] == inf && a[(x + 1 + dis[x][y]) % n][y] == 0 && a[(x + 2 + dis[x][y]) % n][y] == 0){dis[nx][ny] = dis[x][y] + 1;q.push({nx, ny});}nx = x, ny = y + 1;if(ny < m && dis[nx][ny] == inf && a[(x + 1 + dis[x][y]) % n][y + 1] == 0){dis[nx][ny] = dis[x][y] + 1;q.push({nx, ny});}}res = inf;for(int i = 0; i < n; i++){res = min({res, dis[i][m - 1] + min(n - 1 - i, i + 1)});}if(res == inf) res = -1;cout << res << '\n';
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout << fixed << setprecision(9);int T = 1;cin >> T;while (T--){solve();}return 0;
}

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

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

相关文章

STM32—SPI通讯协议

前言 由于I2C开漏外加上拉电阻的电路结构&#xff0c;使得通信线高电平的驱动能力比较弱&#xff0c;这就会号致&#xff0c;通信线由候电平变到高电平的时候&#xff0c;这个上升沿耗时比较长&#xff0c;这会限制I2C的最大通信速度&#xff0c; 所以&#xff0c;I2C的标准模…

uniapp-小程序开发0-1笔记大全

uniapp官网&#xff1a; https://uniapp.dcloud.net.cn/tutorial/syntax-js.html uniapp插件市场&#xff1a; https://ext.dcloud.net.cn/ uviewui类库&#xff1a; https://www.uviewui.com/ 柱状、扇形、仪表盘库&#xff1a; https://www.ucharts.cn/v2/#/ CSS样式&…

经纬恒润荣获2024中国汽车供应链大会创新成果奖

2024年9月24日-26日&#xff0c;2024中国汽车供应链大会暨第三届中国新能源智能网联汽车生态大会在武汉隆重举办。本届大会以“新挑战、新对策、新机遇——推动中国汽车供应链可持续发展”为主题&#xff0c;集聚政府主管领导、行业专家、汽车及零部件企业精英和主流媒体&#…

Ubuntu24.04 安装 NCAR Command Language(NCL)

目录 一般直接在Terminal中使用apt安装命令即可&#xff0c; 出现这样的问题&#xff0c; 如何解决这个问题呢&#xff1f; 一般直接在Terminal中使用apt安装命令即可&#xff0c; sudo apt install ncl-ncarg 但是&#xff0c;由于 Ubuntu 版本较新 Ubuntu 24.04&#xff…

Application protocol

### 11 应用协议 #### 11.1 通用程序 - 涉及不同类型文件的程序应遵循3GPP TS 31.101 [55]的规定&#xff0c;但不支持使用短文件ID。 #### 11.2 SIM管理程序 - 包括SIM初始化、GSM会话终止、紧急呼叫代码请求、语言偏好请求、行政信息请求、SIM阶段请求等。 - SIM初始化包括…

Python OpenCV精讲系列 - 三维重建深入理解(十七)

&#x1f496;&#x1f496;⚡️⚡️专栏&#xff1a;Python OpenCV精讲⚡️⚡️&#x1f496;&#x1f496; 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计&#xff0c;从基础概念入手&#xff0c;逐步深入到图像处理、特征检测、物体识…

迪杰斯特拉算法的理解

图片转载自&#xff1a;最短路径算法-迪杰斯特拉(Dijkstra)算法 - 程序小哥爱读书的文章 - 知乎 https://zhuanlan.zhihu.com/p/346558578 迪杰斯特拉&#xff0c;一个广度优先算法&#xff0c;采用了贪心策略。 第一步&#xff0c;选取顶点D&#xff0c;更新和D相连的节点C&a…

78天闭门深造1258页SpringCloud学习进阶笔记,再战蚂蚁金服

概述 作为一名程序员应该都知道SpringCloud&#xff0c;不知道就该反思一下了啊[奸笑]。所以就不有板有眼的和官方的介绍一样了&#xff0c;今天就说一下&#xff0c;我理解的SpringCloud是什么&#xff1a;我所理解的Spring Cloud就是微服务系统架构的一站式解决方案&#xf…

Java项目: 基于SpringBoot+mysql+maven+vue林业产品推荐系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenvue林业产品推荐系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操…

Python-计算三角形面积的方法

&#xff03;Python创建用于计算的属性 &#xff03;定义一个三角形类&#xff0c;在__init__&#xff08;&#xff09;方法中定义实例属性. &#xff03;定义一个计算三角形面积的方法&#xff0c;并应用&#xff20;property将其转换为属性&#xff0c;最后创建类的实例&am…

算法工程师重生之第二十七天(合并区间 单调递增的数字 监控二叉树 总结)

参考文献 代码随想录 一、合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a…

数据压缩(4)——字典编码

【前言】 变长编码&#xff0c;统计压缩编码都是基于单个字符的编码&#xff0c;字典编码基于数个连续字符&#xff08;也叫基于单词&#xff09;&#xff0c;例如ABCABD中AB可以替换成一个新的字符&#xff0c;其可能会减少字符数量&#xff0c;得到的新数据的熵比原来的小&a…

【推导过程】常用连续分布的数学期望、方差、特征函数

文章目录 相关教程相关文献常用连续分布的数学期望&方差&特征函数正态分布标准正态分布一般正态分布的标准化数学期望方差 3 σ 3\sigma 3σ原则 均匀分布数学期望方差 指数分布无记忆性数学期望方差 伽马分布两个特例数学期望方差 贝塔分布数学期望方差 作者&#xff…

Windows git 配置

需要在git-bash的目录下,配置.ssh 的配置文件 要 .ssh 目录下的配置无法使用

【SPIE独立出版】第四届计算机、信息工程与电子材料国际学术会议 (CTIEEM 2024,2024年11月15-17日 )

第四届计算机、信息工程与电子材料国际学术会议 (CTIEEM 2024) The 4th International Conference on Computer Technology, Information Engineering and Electron Materials 会议官网&#xff1a;www.ctieem.org The 4th International Conference on Computer Technology,…

python中的global和nonlocal关键字以及闭包和模块

global i 这样的用法在于 Python 中&#xff0c;但需要在一个函数内部使用&#xff0c;以便将变量 i 声明为全局变量。让我们来详细讲解一下它的用法。 什么是全局变量&#xff1f; 全局变量是指在函数外部定义的变量&#xff0c;可以在任何函数中访问和修改。如果你需要在函数…

C#无标题栏窗体拖动

要实现C#无标题栏窗体的拖动功能&#xff0c;可以使用以下步骤&#xff1a; 在窗体的构造函数中添加以下代码&#xff0c;将窗体的边框样式设置为无标题栏和可调整大小的窗体&#xff1a; this.FormBorderStyle FormBorderStyle.Sizable; this.Text String.Empty;添加以下代…

【解决】nvidia nx板运行python程序出现Segmentation fault (core dumped)问题

问题&#xff1a;运行python程序出现Segmentation fault (core dumped)问题。 bdlfbdlf-desktop:~/2、car_detect$ python3 test_zxh.py Segmentation fault (core dumped) 解决思路&#xff1a; 在主程序最开始加入两行代码&#xff1a; import faulthandler faulthandler.…

阿里 C++面试,算法题没做出来,,,

我本人是非科班学 C 后端和嵌入式的。在我面试的过程中&#xff0c;竟然得到了阿里​ C 研发工程师的面试机会。因为&#xff0c;阿里主要是用 Java 比较多&#xff0c;C 的岗位比较少​&#xff0c;所以感觉这个机会还是挺难得的。 阿里 C 研发工程师面试考了我一道类似于快速…

Android上的AES加密

基础算法说明 https://www.youtube.com/watch?vlnKPoWZnNNM 虽然这个视频讲的非常详细&#xff0c;但是涉及到具体底层算法&#xff0c;大致流程 1. 将数据转成HEX或者byte array 2.将数据分层一块块等大小的数据 3.将数据和key 进行一次混合&#xff0c;加密之后的输出&…