Trick :带 pop 的 STL 结构化绑定时不要用 auto

题目描述

给一个 n × m n\times m n×m 矩阵迷宫, 第 i i i 行第 j j j 列的值为 c i , j c_{i,j} ci,j L H LH LH 在迷宫中迷路了,他需要你的帮助。

L H LH LH 当前在 ( 1 , 1 ) (1,1) (1,1) 的位置,出口在 ( n , m ) (n,m) (n,m),这个迷宫有一个计数器,只有当计数器的值模 ( p − 1 ) (p-1) (p1) 的余数为 0 0 0 时迷宫出口才会开门(出口没有开门意味着即使在 ( n , m ) (n,m) (n,m) 的位置也不能逃出去)。

L H LH LH 每一秒会向迷宫的上下左右四个方向走一步(不可以不走),并且不能走出迷宫的边界,假设 L H LH LH ( i , j ) (i,j) (i,j) 走到了 ( i ′ , j ′ ) (i',j') (i,j),然后计数器将会加上 c i ′ , j ′ c_{i',j'} ci,j

特别的,计数器初始是 c 1 , 1 c_{1,1} c1,1

c i , j = a i , j × p 2 b i , j c_{i,j}=a_{i,j}\times p^{2^{b_{i,j}}} ci,j=ai,j×p2bi,j

现在 L H LH LH 问你,他最快需要多久才可以走出迷宫。

输入描述

第一行输出三个整数 n , m , p ( 1 ≤ n , m ≤ 10 , 2 ≤ p ≤ 1 0 4 ) n,m,p(1\le n,m\le 10,2\le p\le 10^4) n,m,p(1n,m10,2p104)
接下来输入一个 n n n m m m 列的矩阵 a i , j a_{i,j} ai,j
接下来输入一个 n n n m m m 列的矩阵 b i , j b_{i,j} bi,j
0 ≤ a i , b i ≤ 1 0 6 0\le a_i,b_i\le 10^6 0ai,bi106

做法

  • 注意到要在模 p-1 意义下,因为 a b % p = ( a % p ) b % p a^b\%p=(a\%p)^b\%p ab%p=(a%p)b%p ,所以 c i , j = a i , j % ( p − 1 ) c_{i,j}=a_{i,j}\%(p-1) ci,j=ai,j%(p1)

  • 如此走一遍 bfs 即可

Trick

  • 这题如此简单,那么为什么要放到 trick 专栏呢

  • 注意下面代码 :

    void Show(){
        while(q.size()){
        	// auto &[x, y, v] = q.front(); q.pop();
        	auto [x, y, v] = q.front(); q.pop();
        	// cout << x << ' ' << y << ' ' << v << ' ' << d[x][y][v] << '\n';
        	for(int i = 0; i < 4; i ++){
        		int a = x + dx[i];
        		int b = y + dy[i];
        		if(a >= 1 && a <= n && b >= 1 && b <= m){
        			int tmpV = (v + A[a][b]) % (p - 1);
        			if(d[a][b][tmpV] == -1){
        				d[a][b][tmpV] = d[x][y][v] + 1;
        				q.push({a, b, tmpV});
        			}
        		}
        	}
        }
    }
    
  • 可以看到,这是一个带 pop 的数据结构,这种数据结构进行结构化绑定的时候一定不要加 & ,虽然现在看很 NT,但是写的时候就是容易注意不到,所以放到 trick 专栏里面

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

完全离线的本地问答模型LocalGPT如何实现无公网IP远程连接提问

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问&#xff0c;由于localGPT只能通过本地局域网IP地址端口号的形式访问&#xff0c;实现远程访问…

[C语言]指针

一、指针简介 1、指针(Pointer)是C语言的一个重要知识点&#xff0c;其使用灵活、功能强大&#xff0c;是C语言的灵魂 2、指针与底层硬件联系紧密&#xff0c;使用指针可操作数据的地址&#xff0c;实现数据的间接访问 3、计算机存储机制 4、定义指针 &#xff08;1&#x…

视频共享融合赋能平台LntonCVS安防监控平台现场方案实现和应用场景

LntonCVS国标视频融合云平台采用端-边-云一体化架构&#xff0c;部署简单灵活&#xff0c;功能多样化。支持多协议&#xff08;GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等&#xff09;和多类型设备接入&#xff08;IPC/NVR/监控平台&#xff09;。主要功能包括视频直…

技术驱动的音乐变革:AI带来的产业重塑

&#x1f4d1;引言 近一个月来&#xff0c;随着几款音乐大模型的轮番上线&#xff0c;AI在音乐产业的角色迅速扩大。这些模型不仅将音乐创作的门槛降至前所未有的低点&#xff0c;还引发了一场关于AI是否会彻底颠覆音乐行业的激烈讨论。从初期的兴奋到现在的理性审视&#xff0…

衣服、帽子、鞋子相关深度学习数据集大合集(1)

最近收集了一大波关于衣物深度学习数据集&#xff0c;主要有衣服、帽子、鞋子、短裤、短袖、T恤等。 1、运动裤、短裤图片数据集 数据格式&#xff1a;图片 是否标注&#xff1a;已标注 标注格式&#xff1a;yolov8 图片数量&#xff1a;915张 查看地址&#xff1a;https…

virutalBox安装debian并配置docker环境

下载镜像 https://gemmei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.5.0-amd64-netinst.iso 虚拟机安装 如何在Virtual Box 上安装Debian系统_virtual box debian iso netinst-CSDN博客 启动命令行模式 如何设置Debian图形启动或命令行界面启动&#xff1…

S32K3 --- Wdg(内狗) Mcal配置

前言 看门狗的作用是用来检测程序是否跑飞,进入死循环。我们需要不停地喂狗,来确保程序是正常运行的,一旦停止喂狗,意味着程序跑飞,超时后就会reset复位程序。 一、Wdg 1.1 WdgGeneral Wdg Disable Allowed : 启用此参数后,允许在运行的时候禁用看门狗 Wdg Enable User…

微信小程序服务器从腾讯云迁移到阿里云出现的坑

微信小程序服务器从腾讯云迁移到阿里云出现的坑 背景 原先小程序后台服务器到期&#xff0c;因为之前买的是腾讯云新用户&#xff0c;便宜&#xff0c;到期后续费金额懂的都懂。就在阿里云用新用户买了个新的&#xff0c;遂把服务全转到了阿里云服务器上。 此时&#xff0c;域…

加油站可视化:打造智能化运营与管理新模式

智慧加油站可视化通过图扑 HT 构建仿真的三维模型&#xff0c;将加油站的布局、设备状态、人员活动等信息动态呈现。管理者可以通过直观的可视化界面实时监控和分析运营状况&#xff0c;快速做出决策&#xff0c;提高管理效率和安全水平&#xff0c;推动加油站向智能化管理转型…

云服务器的三大核心要素

云服务器作为云计算服务的重要组成部分&#xff0c;面向各类互联网用户提供综合业务能力的服务平台。该平台整合了传统意义上的互联网应用三大核心要素&#xff1a;计算、存储、网络&#xff0c;为用户提供公用化的互联网基础设施服务。 下面将围绕这三大核心要素展开详细的阐…

OverTheWire Bandit 靶场通关解析(下)

介绍 OverTheWire Bandit 是一个针对初学者设计的网络安全挑战平台&#xff0c;旨在帮助用户掌握基本的命令行操作和网络安全技能。Bandit 游戏包含一系列的关卡&#xff0c;每个关卡都需要解决特定的任务来获取进入下一关的凭证。通过逐步挑战更复杂的问题&#xff0c;用户可…

【Dison夏令营 Day 03】使用 Python 创建我们自己的 21 点游戏

21 点(英文&#xff1a;Blackjack)是一种在赌场玩的纸牌游戏。这种游戏的参与者不是互相竞争&#xff0c;而是与赌场指定的庄家竞争。在本文中&#xff0c;我们将从头开始创建可在终端上玩的玩家与庄家之间的二十一点游戏。 二十一点规则 我们将为从未玩过二十一点的读者提供…

【Python实战因果推断】6_元学习器1

目录 Metalearners for Discrete Treatments T-Learner 简单回顾一下&#xff0c;在之前的部分中&#xff0c;你们的重点是干预效果的异质性&#xff0c;也就是确定各单位对治疗的不同反应。在此框架下&#xff0c;您希望估算 或连续情况下的 。换句话说&#xff0c;您想知道…

“深入解析操作系统核心:进程管理与并发艺术“

操作系统中最核心的概念是进程:这是对正在运行程序的ー个抽象 并行 并发 “在任何多道程序设计系统中,CPU由一个进程快速切换至另ー个进程,使每个进程各运行几十或几百毫秒。严格地说,在某ー个瞬间,CPU只能运行ー个进程。但在1秒钟内,它可能运行多个进程,这样就产生并行的错觉…

【RAG】FoRAG:面向网络增强型长形式问答的事实性优化RAG

一、解决问题 在基于网络的长形式问答&#xff08;Web-enhanced Long-form Question Answering, LFQA&#xff09;任务中&#xff0c;现有RAG在生成答案时存在的问题&#xff1a; 事实性不足&#xff1a;研究表明&#xff0c;现有系统生成的答案中只有大约一半的陈述能够完全得…

SpringBoot学习04-[定制SpringMVC]

定制SpringMVC 定制SpringMvc的自动配置定制springmvc-configurePathMatch配置定制SpringMVC-拦截器Interceptor定制SpringMVC-CORS配置全局cors配置针对某个方法加跨域解决 WebMvcConfigurer原理定制SpringMVC-JSONJSON开发jackson的使用定制化json序列化和反序列化 JSON国际化…

Kafka面试必备:深度解析Replica副本的作用与机制

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hey大家好!我是小米,一个超级喜欢分享技术干货的大哥哥!今天咱们来聊聊阿里巴巴面试题中的一个热门话题:Kafka中的Replica副本作用。这可是个既基础…

供应商关系管理(SRM)中的供应商绩效评估

供应商绩效评估是供应商关系管理&#xff08;SRM&#xff09;的核心组成部分&#xff0c;它涉及到对供应商在合作过程中的表现进行全面的分析和评价。一个有效的供应商绩效评估系统不仅可以帮助企业识别和解决供应链中的潜在问题&#xff0c;还可以促进供应商的持续改进和优化&…

npm创建一个空的vue3项目的方法或者pnpm创建vue3项目

1、前提我们已经安装了npm&#xff0c;或者pnpm 2、我们用npm来创建vue3项目 快速上手 | Vue.js 官网地址 这里我安装是的 node v18.20.3 以下是安装过程 &#xff1a; npm create vuelatest 根据自己的需要进行创建即可。 3、我们用pnpm来创建vite vue3项目 pnpm create …

【算法专题--栈】栈的压入、弹出序列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 &#x1f4a7;栈模拟法&#x1f4a7;-- 双指针 ⭐ 解题思路 ⭐ 案例图解 四、总结与提炼 五、共勉 一、前言 栈的压入、弹出序列 这道题&#xff0c;可以说是--栈专题--&#xff0c;最经典的一道题&#xff0c;也是在…