2012NOIP普及组真题 2. 寻宝

线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1958

核心思想:(模拟)

1、模拟 每一层从起始房间开始,轮询 x 个有楼梯的房间后到达终点房间
2、由于 0 < N ≤ 10000 , 0 < M ≤ 100 0<N≤10000,0<M≤100 0<N100000<M100 ,如果对每一层楼和每一个房间做暴力,时间复杂度为 O ( 1 0 6 ) O(10^6) O(106),在承受范围之内。
3、但是 每一层楼 轮询的步数 x 可达到1,000,000,远大于 每一层有楼梯的 房间数量

举例:某层有100个房间,但是要逆时针1,000,000次后的房间才是终点房间。但实际只要逆时针100次即可。所以暴力前要 先用 x 对 tot[i] 取模,减少无效暴力

4、初始读入每层楼的每个房间信息时,顺便统计 每层楼有楼梯的房间总数,作为 tot[i]
5、在 模拟时,从起始房间号 [start] 开始,轮询每一个房间如果是有楼梯的房间(读入时用 flag[i][j]=1 标记),则 轮询步数x–当 x 减到 0时,就是终点房间

题解代码:
#include <bits/stdc++.h>
#define MOD 20123
using namespace std;const int N = 10005, M = 105;int n, m, start, ans;  // start 存储进入每一层的起始房间号,第0层时为读入
int flag[N][M], x[N][M];  // flag[i][j]=1: 1有楼梯,0无楼梯
int tot[N] = {0}; // tot[i] 记录第i+1层有楼梯房间的数量// 由于 0<x≤1,000,000,远大于每一层有楼梯的房间数量 tot[i],所以暴力前要先用x对 tot[i] 取模,减少无效暴力
int main()
{scanf("%d%d", &n, &m);int ans = 0;for(int i = 0; i < n; i ++ )for(int j = 0; j < m; j ++ ){scanf("%d%d", &flag[i][j], &x[i][j]);if(flag[i][j])  tot[i]++;}cin >> start;for(int i = 0; i < n; i ++ ){int num = x[i][start];  // 取每一层起始房间内的数字作为步数ans = (ans + num) % MOD;// 先记录答案,再取模num %= tot[i]; // 步数对当前楼层有梯子的房间数量取模(切忌,先更新ans,再对tot[i]取模。否则ans就错了)if (num == 0)  num = tot[i];// 注意边界,如果取模后为0,说明步数是tot[i]的整数倍。所以只走一次tot[i]即可int j = start; // 从起点房间开始while(1){if(flag[i][j] == 1) // 如果该房间有楼梯{num--;          // 剩余步数-1if(num == 0)    // 如果减完后剩余步数为0{start = j;  // 则j房间就是这一层的终点房间,也是下一层的起点房间break;}}j = (j + 1) % m;  // 如果还没有跳出这一层,则j++, 继续搜索下一个房间。直至跳出本层的while循环}}cout << ans << endl;return 0;
}

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

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

相关文章

网络基础(1)网络编程套接字UDP

要完成网络编程首先要理解原IP和目的IP&#xff0c;这在上一节已经说明了。 也就是一台主机要进行通信必须要具有原IP和目的IP地址。 端口号 首先要知道进行网络通信的目的是要将信息从A主机送到B主机吗&#xff1f; 很显然不仅仅是。 例如唐僧要去到西天取真经&#xff0…

源码篇--Nacos服务--中章(8):Nacos服务端感知客户端实例变更-3

文章目录 前言一、客户端实例变更&#xff1a;二、实例变更感知&#xff1a;2.1 实例注册信息通知&#xff1a;2.1.1 接收DistroDataRequest 请求&#xff1a;2.1.2 onReceive 处理请求&#xff1a;2.1.3 processData 处理请求&#xff1a;2.1.4 handlerClientSyncData 处理数据…

Optimistic乐观挑战游戏Sharelock审计大赛

1. 引言 Optimistic的Sherlock审计大赛已进入升级期&#xff0c;fault proofs距离OP主网上线又更近一步了。本文将分享一些初步竞赛结果以及通往Stage 1的后续安排。 2. 审计状态更新 2024年3月27日&#xff0c;Optimistic团队开始针对拟议的 OP Stack fault proof系统进行 …

MySQL修改密码过期时间

1、my.ini中设置 [mysqld] #过期时间90天 default_password_lifetime90 2、或者 SET GLOBAL default_password_lifetime 90; 3、或者 ALTER USER usernamehostname PASSWORD EXPIRE INTERVAL 90 DAY; 4、查看过期时间 SHOW VARIABLES LIKE default_password_lifetime; …

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板&#xff1a;13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去&#xff1a;点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

光伏电站运维的重要性!

随着可再生能源的不断发展和应用&#xff0c;光伏电站成为了当下热门的能源产业之一。然而&#xff0c;光伏电站的运维管理却常常被忽视。光伏电站系统运维管理的重要性不容忽视&#xff0c;它直接关系着光伏电站的稳定运行、发电效率以及长期收益。 1.保证光伏电站的正常运行…

体验用AI写代码

近两年&#xff0c;AI确实迎来了大爆发&#xff0c;2023年也成了AI时代的元年&#xff0c;去年下半年的时候&#xff0c;国内月之暗面出品的Kimi成了新的AI热门&#xff0c;也体验用Kimi修改论文&#xff0c;以及用图片生成代码&#xff0c;代码准确度还是蛮高的。做为SRE&…

使用Python的Tkinter库创建你的第一个桌面应用程序

文章目录 准备工作创建窗口和按钮代码解释运行你的应用程序结论 在本教程中&#xff0c;我们将介绍如何使用Python的Tkinter库创建一个简单的桌面应用程序。我们将会创建一个包含一个按钮的窗口&#xff0c;点击按钮时会在窗口上显示一条消息。 准备工作 首先&#xff0c;确保…

【LeetCode题库】1068. 产品销售分析 I —— MySQL 性能提升,using()关键字

文章目录 原题题解解题笔记 我是一名立志把细节都说清楚的博主&#xff0c;欢迎【关注】&#x1f389; ~ 原创不易&#xff0c; 如果有帮助 &#xff0c;记得【点赞】【收藏】 哦~ ❥(^_-)~ 如有错误、疑惑&#xff0c;欢迎【评论】指正探讨&#xff0c;我会尽可能第一时间回…

扩展大型视觉-语言模型的视觉词汇:Vary 方法

在人工智能领域&#xff0c;大型视觉-语言模型&#xff08;LVLMs&#xff09;正变得越来越重要&#xff0c;它们能够处理多种视觉和语言任务&#xff0c;如视觉问答&#xff08;VQA&#xff09;、图像字幕生成和光学字符识别&#xff08;OCR&#xff09;。然而&#xff0c;现有…

互联网的路由选择协议

一、内部网关协议RIP &#xff08;1&#xff09;概述 RIP是一种分布式的、基于距离向量的路由选择协议。 RIP认为一个好的路由就是它通过的路由器的数目少&#xff0c;即“距离短”RIP允许一条路径最多只能包含15个路由器 &#xff08;2&#xff09;RIP的特点 和谁交换信息…

Docker--compose概述与部署

目录 一、概述 1. Compose简介 1.1 docker compose常用命令 1.2 Compose配置常用字段 2. YAML简介 2.1 YAML支持的数据结构 2.2 YML文件编写注意事项 2.3 Docker Compose文件结构 3. Docker-Compose安装 ​编辑 4.docker Compose撰写nginx 镜像 1. 准备环境 ​编辑…

Zabbix 安装部署说明文档

Zabbix是一个开源的网络监控和管理系统&#xff0c;其架构设计用于提供企业级的监控解决方案。以下是Zabbix的主要组件&#xff1a; 1.Zabbix Server&#xff1a;这是Zabbix系统的核心组件&#xff0c;负责接收Agent程序报告的系统可用性、系统完整性和统计数据。Zabbix Serve…

CSS 06

精灵图 为什么要使用精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度,因此&#xff0c;为了有效地减少服务…

【深度学习】YOLOv5,金属表面的缺陷检测,GC10-DET数据集

目录&#xff1a; 文章目录 数据集数据集转换下载yolov5创建 dataset.yaml训练参数开始训练数据分布训练结果问询、帮助 数据集 数据集地址&#xff1a; https://github.com/lvxiaoming2019/GC10-DET-Metallic-Surface-Defect-Datasets 数据集下载方式&#xff1a; Downlo…

通过MybatisPlus实现字段自动填充功能

MyBatisPlus中使用 TableField完成字段自动填充功能。 一、字段填充策略 FieldFill DEFAULT默认不处理INSERT插入填充字段UPDATE更新填充字段INSERT_UPDATE插入和更新填充字段 二、自动填充拦截器 MetaObjectHandler MetaObjectHandler 是 MyBatis 提供的一个用于操作对象属…

SpringBoot的墙绘产品展示交易平台 - 源码免费(私信领取)

v&#xff1a;chengn7890&#xff5c;源码免费 1. 研究目的 本项目旨在设计并实现一个基于Spring Boot的墙绘产品展示交易平台&#xff0c;为墙绘艺术家提供一个展示作品、交流经验、销售作品的平台&#xff0c;促进墙绘艺术产业的发展。 2. 研究要求 a. 需求分析 通过深入…

最短路问题——K短路问题 / 次短路问题

最短路问题 最短路问题中的非常著名的Dijkstra算法、Floyd-Warshall算法以及经典的练习题&#xff0c;大家可以去下面的链接看哈。Dijkstra算法 Floyd-Warshall算法 一、K 短路问题 A*算法 给定一个图&#xff0c;定义起点 &#x1d460; 和终点 &#x1d461;&#xff0c;以及…

跟我学C++中级篇——内联

一、内联函数 内联函数的定义有各种形式&#xff0c;这里只提一种百度百科上的定义&#xff1a;“在计算机科学中&#xff0c;内联函数&#xff08;有时称作在线函数或编译时期展开函数&#xff09;是一种编程语言结构&#xff0c;用来建议编译器对一些特殊函数进行内联扩展&a…

有趣的大模型之我见 | Claude AI

最近我的朋友圈被 Claude 3 严重刷屏。因为它在 Performance Benchmark 和 Vision Capabilities 中的表现荣登第一。 对 Claude AI 的喜欢是从它第二个版本出来。仅从我个人的简单应用场景的体验是&#xff0c;Claude 对于 prompt 的理解度&#xff0c;尤其是对中文的理解度高…