当前位置: 首页 > news >正文

济宁网站建设 中企动力临沂wordpress阻止访问

济宁网站建设 中企动力临沂,wordpress阻止访问,深圳东门网红打卡地,太原网站优化常识原题链接 思路:找出最短路径,然后判断是否存在连续三个点是横纵坐标相等的,如果有就步数减1 但是有两个样例过不了 错误原因:在错误的测试案例中,最短路径可能有多条,而我刚好选了一条比较曲折的&#x…

原题链接

思路:找出最短路径,然后判断是否存在连续三个点是横纵坐标相等的,如果有就步数减1

但是有两个样例过不了

错误原因:在错误的测试案例中,最短路径可能有多条,而我刚好选了一条比较曲折的,不能一下子走两步

#include <bits/stdc++.h>using namespace std;int main() {int n, m;cin >> n >> m;vector<vector<int>> arr(n + 2, vector<int>(m + 2, -1));vector<vector<int>> state(n + 2, vector<int>(m + 2, 0));vector<vector<pair<int, int>>> lastNode(n + 2, vector<pair<int, int>>(m + 2, {0, 0}));for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {int num;cin >> num;arr[i][j] = num;}}int step = 0;queue<pair<int, int>> p, c;bool isFind = false;p.emplace(1, 1);while (!p.empty()) {while (!p.empty()) {auto cur = p.front();if (cur.first == n && cur.second == m) {isFind = true;break;}p.pop();if (arr[cur.first - 1][cur.second] == 0 && state[cur.first - 1][cur.second] == 0) {c.emplace(cur.first - 1, cur.second);state[cur.first - 1][cur.second] = 1;lastNode[cur.first - 1][cur.second] = {cur.first, cur.second};}if (arr[cur.first + 1][cur.second] == 0 && state[cur.first + 1][cur.second] == 0) {c.emplace(cur.first + 1, cur.second);state[cur.first + 1][cur.second] = 1;lastNode[cur.first + 1][cur.second] = {cur.first, cur.second};}if (arr[cur.first][cur.second - 1] == 0 && state[cur.first][cur.second - 1] == 0) {c.emplace(cur.first, cur.second - 1);state[cur.first][cur.second - 1] = 1;lastNode[cur.first][cur.second - 1] = {cur.first, cur.second};}if (arr[cur.first][cur.second + 1] == 0 && state[cur.first][cur.second + 1] == 0) {c.emplace(cur.first, cur.second + 1);state[cur.first][cur.second + 1] = 1;lastNode[cur.first][cur.second + 1] = {cur.first, cur.second};}}if (isFind) break;step++;p = c;while (!c.empty()) c.pop();}vector<pair<int, int>> result;if (!isFind) {cout << -1 << endl;return 0;} else {int i = n, j = m;while (i != 1 || j != 1) {result.emplace_back(i, j);auto post = lastNode[i][j];i = post.first;j = post.second;}}
//    cout << "1 1" << endl;
//    for (int i = result.size() - 1; i >= 0; --i) {
//        auto cur = result[i];
//        cout << cur.first << " " << cur.second << endl;
//    }result.emplace_back(1, 1);int count = result.size() - 1; // 经过多少个点,减去1 就是单步走的最短路径for (int i = result.size() - 1; i >= 2; --i) {if (result[i].first == result[i - 1].first && result[i].first == result[i - 2].first) {count--;i = i - 1; // 循环结束会减一 所以这里只要减1 一共减2} else if (result[i].second == result[i - 1].second && result[i].second == result[i - 2].second) {count--;i = i - 1;}}cout << count << endl;return 0;
}

http://www.dtcms.com/a/483943.html

相关文章:

  • 南京建设网站要多少钱手机网站需要域名吗
  • 基于成功率的自适应差分进化 L-SRTDE 用于 CEC 2024 竞赛
  • 企业 办公 网站模板下载企业网站制作步骤
  • 网站建设大致分哪几块天津网站开发公司
  • 怎样查网站备案人的联系方式网站开发自学时间
  • 网站系统平台建设个人网站主页
  • 基于springboot的民谣网站的设计与实现
  • Linux系统新建用户登录只显示$简陋提示符 ,不显示用户名、主机名字、当前目录...
  • 阿里云网站托管公司软件网站建设
  • 安装网站时出现dir网站的常用技术有哪些
  • 十字链表的构建和操作
  • 中山做网站的公司哪家好佛山100强企业名单
  • 广州网站建设+美词有哪些网站做的好处
  • 网站查询功能怎么做php网页设计完整代码
  • Efficient Multi-Scale Attention Module with Cross-Spatial Learning 学习笔记
  • 国内专门做情侣的网站商城广州市建设工程信息管理平台
  • 游仙移动网站建设有意义网站
  • 小红书MCP AI自动工作流
  • QPSK信号载波同步技术---四相Costas 环法
  • android开发和网站开发wordpress对比phpcms
  • [嵌入式系统-111]:瑞芯微RK3588芯片
  • 广东顺德网站建设在线买房网站建设 方案
  • 深入剖析 std::map 的红黑树实现机制
  • 网站建设工作室怎么接单做网站推广挣多少钱
  • 免登录!免安装ClI,Claude Code官方插件接入API使用教程
  • 网站制作有哪些种类网站设计包括
  • 英文外贸网站建设网站设计方案网上开店网站
  • 为了庆祝2025英雄联盟全球总决赛开启,我用HTML+CSS+JS制作了LOL官方网站
  • Server 14 ,Windows 11 下 Nginx 安装与自启动配置攻略( Windows 与 Nginx )
  • 哪些网站是用php做的北京网站开发工程师