【每日一题 | 2025年5.5 ~ 5.11】搜索相关题
个人主页:Guiat
归属专栏:每日一题
文章目录
- 1. 【5.5】P3717 [AHOI2017初中组] cover
- 2. 【5.6】P1897 电梯里的尴尬
- 3. 【5.7】P2689 东南西北
- 4. 【5.8】P1145 约瑟夫
- 5. 【5.9】P1088 [NOIP 2004 普及组] 火星人
- 6. 【5.10】P1164 小A点菜
- 7. 【5.11】P1019 [NOIP 2000 提高组] 单词接龙
正文
1. 【5.5】P3717 [AHOI2017初中组] cover
题目链接:https://www.luogu.com.cn/problem/P3717
【分析】
暴力搜索 + 两点距离公式,时间复杂度:O(m * n ^ 2)。
【AC_Code】
#include <iostream>
#include <cmath>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;bool vis[105][105]; int ans;void solve()
{int n, m, r; cin >> n >> m >> r;while (m --){int x, y; cin >> x >> y;for (int i = 1; i <= n; i ++) for (int j = 1; j <= n; j ++){double dis = sqrt(pow((i - x), 2) + pow((j - y), 2));if (dis <= r) vis[i][j] = true;}}for (int i = 1; i <= n; i ++) for (int j = 1; j <= n; j ++) if (vis[i][j]) ans ++;cout << ans << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
2. 【5.6】P1897 电梯里的尴尬
题目链接:https://www.luogu.com.cn/problem/P1897
【分析】
先读懂题目样例,之后按题意模拟即可,具体看代码。
【AC_Code】
#include <iostream>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 1e5 + 10; int a[N], now, ans;void solve()
{int n; cin >> n; for (int i = 0; i < n; i ++) cin >> a[i];sort(a, a + n);for (int i = 0; i < n; ){int tar = a[i];if (tar > now) ans += (tar - now) * 6;else if (tar < now) ans += (now - tar) * 4;int cnt = 0;while (i < n && a[i] == tar) cnt ++, i ++;ans += 5; ans += cnt; now = tar;} ans += now * 4;cout << ans << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
3. 【5.7】P2689 东南西北
题目链接:https://www.luogu.com.cn/problem/P2689
【分析】
按题意模拟即可,注意逻辑,属于简单题。
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;int ans;void solve()
{int x1, y1, x2, y2, T; cin >> x1 >> y1 >> x2 >> y2 >> T;while (T --){char c; cin >> c;if (c == 'N' && y1 < y2) y1 ++, ans ++;else if (c == 'S' && y1 > y2) y1 --, ans ++;else if (c == 'W' && x1 > x2) x1 --, ans ++;else if (c == 'E' && x1 < x2) x1 ++, ans ++;if (x1 == x2 && y1 == y2) { cout << ans << '\n'; return ; }}cout << -1 << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
4. 【5.8】P1145 约瑟夫
题目链接:https://www.luogu.com.cn/problem/P1145
【分析】
pos(删除位置)
4 = (0 + 4) % (2 * 3 - 0)
3 = (4 + 4) % (2 * 3 - 1)
3 = (3 + 4) % (2 * 3 - 2)
=> pos = (pos + m - 1) % (2 * k - i)
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;void solve()
{int k; cin >> k; int m = k + 1;while (1){int pos = 0; bool flag = true;for (int i = 0; i < k; i ++){pos = (pos + m - 1) % (2 * k - i);if (pos < k) { flag = false; break; }}if (flag) { cout << m << '\n'; return ; }m ++;}
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
5. 【5.9】P1088 [NOIP 2004 普及组] 火星人
题目链接:https://www.luogu.com.cn/problem/P1088
【分析】
相当于一个全排列模版:求输入的整数序列进行 m 次字典序下一个排列的变换。
【AC_Code】
#include <iostream>
#include <algorithm>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;const int N = 1e4 + 10; int a[N];void solve()
{int n, m; cin >> n >> m;for (int i = 0; i < n; i ++) cin >> a[i];for (int i = 0; i < m; i ++) next_permutation(a, a + n);for (int i = 0; i < n; i ++) cout << a[i] << ' '; cout << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
6. 【5.10】P1164 小A点菜
题目链接:https://www.luogu.com.cn/problem/P1164
【分析】
01背包的变种,构建二维dp矩阵,f[i][j]表示前i个菜品恰好花费j元的方案数,二维可以优化到一维,这里采用二维解法。
【AC_Code】
#include <iostream>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;int a[110], f[110][10010];void solve()
{int n, m; cin >> n >> m; for (int i = 1; i <= n; i ++) cin >> a[i];for (int i = 0; i <= n; i ++) f[i][0] = 1;for (int i = 1; i <= n; i ++) for (int j = 1; j <= m; j ++){f[i][j] += f[i - 1][j];if (j >= a[i]) f[i][j] += f[i - 1][j - a[i]];}cout << f[n][m] << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
7. 【5.11】P1019 [NOIP 2000 提高组] 单词接龙
题目链接:https://www.luogu.com.cn/problem/P1019
【分析】
考察搜索+字符串处理。
【AC_Code】
#include <iostream>
#include <string>
#define IOS ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;string s[25]; int n, vis[25], ans;string check(string s1, string s2)
{for (int i = 1; i < s1.length() && i < s2.length(); i ++){if (s1.substr(s1.length() - i, i) == s2.substr(0, i))return (s1.substr(0, s1.length() - i) + s2);}return "0";
}void dfs(string drag)
{if (drag.size() > ans) ans = drag.size();for (int i = 0; i < n; i ++){if (vis[i] == 2) continue;if (check(drag, s[i]) != "0") { vis[i] ++; dfs(check(drag, s[i])); vis[i] --; }}
}void solve()
{cin >> n; for (int i = 0; i < n; i ++) cin >> s[i];char c; cin >> c;for (int i = 0; i < n; i ++){if (s[i][0] == c) { vis[i] ++; dfs(s[i]); vis[i] --; }}cout << ans << '\n';
}int main()
{IOS int _ = 1; // cin >> _;while (_ --) solve();return 0;
}
结语
感谢您的阅读!期待您的一键三连!欢迎指正!
相关文章:
【每日一题 | 2025年5.5 ~ 5.11】搜索相关题
个人主页:Guiat 归属专栏:每日一题 文章目录 1. 【5.5】P3717 [AHOI2017初中组] cover2. 【5.6】P1897 电梯里的尴尬3. 【5.7】P2689 东南西北4. 【5.8】P1145 约瑟夫5. 【5.9】P1088 [NOIP 2004 普及组] 火星人6. 【5.10】P1164 小A点菜7. 【5.11】P101…...
【MySQL】页结构详解:页的大小、分类、头尾信息、数据行、查询、记录及数据页的完整结构
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
C++ stl中的priority_queue的相关函数用法
文章目录 priority_queuepriority_queue定义方式priority_queue相关函数 priority_queue priority_queue 称为 优先级队列,默认使用vector作为底层存储数据的容器,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用…...
软件架构师知识点总结
一、综合知识 软件架构师综合知识总结-CSDN博客 二、案例 软件架构师案例知识点总结-CSDN博客 三、论文 1、题目类型:八大架构;系统开发(开发方法/模型、需求分析、测试等);系统可靠性、安全性、容错技术等&#…...
MySQL数据库常见面试题之三大范式
写在前面 此文章大部分不会引用最原始的概念,采用说人话的方式。 面试题:三大范式是什么?目的是什么?必须遵循吗? 假设有一张表(学号,姓名,课程,老师) 是…...
Scrapy 核心组件解析:Request Response 的深度应用与实战
Scrapy 是 Python 生态中最强大的爬虫框架之一,其核心组件 Request 和 Response 承担着数据抓取与处理的关键任务。本文深入解析 Scrapy 2.13.0 中 Request 和 Response 的高级用法,涵盖参数配置、回调函数、错误处理、子类扩展等,并结合 综合…...
mybatis执行sql过程
一、配置加载阶段 1. 读取全局配置(mybatis-config.xml) 入口类:SqlSessionFactoryBuilder.build()关键组件: XMLConfigBuilder:解析全局配置文件。Configuration:存储所有配…...
OceanBase 4.3版本向量数据库部署
OceanBase 4.3版本向量数据库部署 安装包准备最低资源配置重要的准备事项服务器配置操作系统内核参数BIOS设置磁盘挂载网卡设置 部署OAT工具初始化OBServer服务器使用oatcli部署OB集群安装OceanBase软件初始化OceanBase集群 启用向量检索功能 OceanBase最新的V4.3版本开始支持向…...
LeetCode 941. 有效的山脉数组 java题解
https://leetcode.cn/problems/valid-mountain-array/description/ 双指针 class Solution {public boolean validMountainArray(int[] arr) {int lenarr.length;if(len<3) return false;int left0,rightlen-1;while(left1<len&&arr[left]<arr[left1]){left…...
基于Java和高德开放平台的WebAPI集成实践-以搜索POI2.0为例
目录 前言 一、高德搜索API简介 1、高德开放平台 2、搜索功能介绍 3、部分API介绍 二、Uniapi集成高德API 1、API集成流程 2、访问接口的定义 3、业务调用集成 三、常见问题与优化 四、总结 前言 在当今数字化时代,地理信息系统(GISÿ…...
Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航
创建Ubuntu22.04 容器 docker pull ubuntu:22.04 #下载22.04镜像 docker images #查看已下载镜像 #根据镜像创建容器 sudo docker run -it -v /home/lab118/BD_ICL/tools_BD/cailib_data:/calib_data -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY:0 --nethost -e GDK_SCAL…...
PXE安装Ubuntu系统
文章目录 1. 服务器挂载Ubuntu镜像2. 修改dhcp配置文件3. 修改tftp配置文件4.复制网络驱动文件和其他配置文件5. http目录下配置文件6. 踩坑记录6.1 Failed to load ldlinux.c326.2 no space left on device6.3 为啥用pxe安装系统时,客户端需要较大的内存࿱…...
外网访问内网海康威视监控视频的方案:WebRTC + Coturn 搭建
外网访问内网海康威视监控视频的方案:WebRTC Coturn 需求背景 在仓库中有海康威视的监控摄像头,内网中是可以直接访问到监控摄像的画面,由于项目的需求,需要在外网中也能看到监控画面。 实现这个功能的意义在于远程操控设备的…...
缓存局部性保留
在操作系统中,线程切换相比进程切换更轻量级的关键原因之一是 缓存(Cache)的有效性,尤其是对 CPU 缓存(如 L1/L2/L3)和 TLB(Translation Lookaside Buffer)的影响。以下从缓存角度详…...
MyBatis源码解读5(3.1、缓存简介)
3.1、简介 我们需要记住一句话,程序与数据库之间的交互是性能瓶颈的关键,所以我们在做优化的时候,数据库的优化要做,但是优先级是最低的,比它优先级高的是方面是程序与数据库之间的交互,先从宏观上解决…...
【MySQL】行结构详解:InnoDb支持格式、如何存储、头信息区域、Null列表、变长字段以及与其他格式的对比
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库
介绍 Nexus 是广泛使用的仓库管理工具,常用于管理 Java 构件(如 JAR、WAR、EAR 文件)。它可以作为一个本地的 Maven 仓库,用来存储和管理项目的依赖包和构建产物。支持多种仓库类型,能够帮助开发团队更高效地管理构件…...
PostgreSQL 的 pg_column_size 函数
PostgreSQL 的 pg_column_size 函数 pg_column_size 是 PostgreSQL 提供的一个系统函数,用于返回特定列或值在数据库内部存储时所占用的字节数。这个函数对于数据库优化、存储空间分析和性能调优非常有用。 函数语法 pg_column_size(anyelement)参数说明 anyele…...
【前端】【HTML】【总复习】一万六千字详解HTML 知识体系
🌐 HTML 知识体系 一、HTML 基础入门 1. HTML 简介与作用 HTML(HyperText Markup Language,超文本标记语言)是构建网页的基础语言。它的核心作用是: 定义网页内容的结构(标题、段落、图片、表格等)提供语义化标签,帮助搜索引擎与辅助设备理解页面内容配合 CSS 实现…...
支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用
支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用 在机器学习的多元算法领域中,支持向量机(SVM)和逻辑回归(LR)作为两种经典的监督学习算法,被广泛应用于各类分类任务。尽管它们有着相似的目标&#…...
MySQL基础面试题集锦
MySQL基础面试题集锦 一、SQL基础语法 1. 数据库和表操作 -- 创建数据库 CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 创建表 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,email VARCH…...
【网络分析工具】网络工具wireshark、TCPdump、iperf使用详解
这里写目录标题 1. wireshark1.1. 过滤包1.2. 常见分析 2. tcpdump3. iperf 1. wireshark **ip.dst eq 10.0.0.21** 是用于网络流量分析工具(例如 Wireshark 或 tcpdump)的过滤器表达式。 它的作用是筛选出所有目标IP地址为 10.0.0.21 的数据包 IP.add…...
【漫话机器学习系列】253.超平面(Hyperplane)
超平面(Hyperplane)详解:从二维到高维空间 在机器学习、深度学习、支持向量机(SVM)等领域中,经常会遇到一个重要的数学概念——超平面(Hyperplane)。但超平面究竟是什么?…...
#微调重排序模型:Reranking从入门到实践
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
vector 常见用法及模拟
文章目录 1. vector的介绍与使用1.1 vector的构造1.2 vector iterator 的使用1.3 有关大小和容量的操作1.4 vector 增删查改1.5 vector 迭代器失效问题(重点)1.6 vector 中二维数组的使用 2. vector 的模拟实现2.1 拷贝构造和赋值重载的现代写法2.2 memc…...
可变参数模板
引入:为什么会有可变参数模板? 在C98/03中,也就是我们之前学的类模版和函数模版中只能含固定数量的模版参数,而C11中新增的可变参数模板能够不固定数量的模版参数! 一:可变参数模板的格式 // Args是一个模板…...
缓存(5):常见 缓存数据淘汰算法/缓存清空策略
主要的三种缓存数据淘汰算法 FIFO(first in first out):先进先出策略,最先进入缓存的数据在缓存空间不够的情况下(超出最大元素限制)会被优先被清除掉,以腾出新的空间接受新的数据。策略算法主要比较缓存元素的创建时…...
深入了解linux系统—— 自定义shell
shell的原理 我们知道,我们程序启动时创建的进程,它的父进程都是bash也就是shell命令行解释器; 那bash都做了哪些工作呢? 根据已有的知识,我们可以简单理解为: 输出命令行提示符获取并解析我们输入的指令…...
【通讯录教程】如何将号码快速导入手机通讯录,支持苹果和安卓手机,一次性导入大量号码进入手机通讯录,基于WPF的解决方案
以下是一个基于WPF的解决方案,用于将大量号码快速导入苹果和安卓手机通讯录: 项目应用场景 企业员工通讯录批量导入:HR需要将数百名员工的联系方式快速导入公司手机客户关系管理:销售人员需要将大量客户信息导入…...
Git初始化相关配置
Git配置 在Git安装完成后,windows操作系统上会多出一个Git Bash的软件,如果是linux或者是macOS,那么直接打开终端,在终端中敲击命令即可 # 检查git版本 git -v # 或 git --version在使用git时,需要配置一下用户名和邮…...
n8n中订阅MQTT数据
第一步:创建mqtt登录证证 第二步:创建mqtt trigger组件,并配置凭证和订阅主题 第三步:创建Code节点,编写格式转换代码 第四步:创建转发MQTT节点,并配置MQTT凭证 第五步:启用工作流 整…...
Docker、ECS 与 K8s 网段冲突:解决跨服务通信中的路由问题
🧩 问题背景 在阿里云的项目中,在项目初期搭建过程中遇到了一个让人头疼的网络冲突问题:同一个 VPC 中的 Docker 容器和 Kubernetes 集群由于使用相同的网段,导致k8s pod连接ECS容器之间的网络连接失败。 背景环境: …...
《智能网联汽车 自动驾驶系统设计运行条件》 GB/T 45312-2025——解读
目录 1. 标准概述 2. 核心概念 3. 标准核心内容 3.1 一般要求 3.2 ODC基础元素层级 3.3 ODC元素具体要求 3.4 附录A(ODC示例) 4. 技术挑战与实施建议 5. 标准意义 原文链接:国家标准|GB/T 45312-2025 (发布:2…...
AARRR用户增长模型(海盗指标)详解
目录 一、模型起源与概述二、五大阶段详解1. 获取(Acquisition)1.1 定义1.2 关键指标 2. 激活(Activation)2.1 定义2.2 关键指标 3. 留存(Retention)3.1 定义3.2 关键指标3.3 提升留存手段案例3.4 互联网留…...
CSS专题之自定义属性
前言 石匠敲击石头的第 12 次 CSS 自定义属性是现代 CSS 的一个强大特性,可以说是前端开发需知、必会的知识点,本篇文章就来好好梳理一下,如果哪里写的有问题欢迎指出。 什么是 CSS 自定义属性 CSS 自定义属性英文全称是 CSS Custom Proper…...
JVM——Java字节码基础
引入 Java字节码(Java Bytecode)是Java技术体系的核心枢纽,所有Java源码经过编译器处理后,最终都会转化为.class文件中的字节码指令。这些指令不依赖于具体的硬件架构和操作系统,而是由Java虚拟机(JVM&…...
【React中useRef钩子详解】
一、useRef的核心特性 useRef是React提供的Hook,用于在函数组件中创建可变的持久化引用,具有以下核心特性: 持久化存储 返回的ref对象在组件整个生命周期内保持不变,即使组件重新渲染,current属性的值也不会丢失。无触发渲染 修改ref.current的值不会导致组件重新渲染,适…...
《AI大模型应知应会100篇》第58篇:Semantic Kernel:微软的大模型应用框架
第58篇:Semantic Kernel:微软的大模型应用框架 ——用C#和Python构建下一代AI应用的统一编程范式 📌 摘要 随着大模型(LLM)技术的快速发展,如何将这些强大的语言模型与传统代码系统进行无缝集成ÿ…...
ssh -T git@github.com 测试失败解决方案:修改hosts文件
问题描述 通过SSH方式测试,使用该方法测试连接可能会遇到连接超时、端口占用的情况,原因是因为DNS配置及其解析的问题 ssh -T gitgithub.com我们可以详细看看建立 ssh 连接的过程中发生了什么,可以使用 ssh -v命令,-v表示 verbo…...
c++面向对象:接口设计
一、什么是接口(Interface)? 在面向对象编程中,接口可以理解为一种“规范”或“约定”。 更具体一点: 它定义了“某个对象”应该具备哪些功能(方法、行为)但不关心这些功能的具体实现细节 用…...
[Java][Leetcode middle] 80. 删除有序数组中的重复项 II
删除重复元素,最多只保留两个 1. 计数法 第一个元素直接加入当与前一个元素相同时,计数器1,不同时计数器恢复1; 只有计数器小于2时,记录元素; public int removeDuplicates2(int[] nums) {int cnt 1;in…...
【Bluedroid】蓝牙HID DEVICE断开连接流程源码分析
蓝牙HID(Human Interface Device)的断开连接流程涉及从应用层到协议栈的多层交互。本文通过剖析Android Bluetooth协议栈代码,梳理从上层调用disconnect()到最终物理链路断开的完整流程,涵盖状态检查、消息传递、L2CAP通道关闭、资…...
嵌入式硬件篇---陀螺仪|PID
文章目录 前言1. 硬件准备主控芯片陀螺仪模块电机驱动电源其他 2. 硬件连接3. 软件实现步骤(1) MPU6050初始化与数据读取(2) 姿态解算(互补滤波或DMP)(3) PID控制器设计(4) 麦克纳姆轮协同控制 4. 主程序逻辑5. 关键优化与调试技巧(1) 传感器校准(2) PID…...
redis数据结构-07(SADD、SREM、SMEMBERS)
Redis Sets 简介:SADD、SREM、SMEMBERS Redis 集合是一种基础数据结构,可用于存储一组唯一且无序的元素。了解如何管理集合对于各种应用至关重要,从跟踪唯一访客到管理用户权限。本课将全面介绍 Redis 集合,重点介绍核心命令 SAD…...
嵌入式硬件篇---TOF|PID
文章目录 前言1. 硬件准备主控芯片ToF模块1.VL53L0X2.TFmini 执行机构:电机舵机其他 2. 硬件连接(1) VL53L0X(IC接口)(2) TFmini(串口通信) 3. ToF模块初始化与数据读取(1) VL53L0X(基于HAL库)(…...
# Anaconda3 常用命令
Anaconda3 常用命令及沙箱环境管理指南 Anaconda3 是一个强大的 Python 发行版,广泛用于数据科学、机器学习和科学计算。其核心优势在于通过 沙箱环境(Conda Environment) 实现项目隔离,避免依赖冲突。本文将介绍 Anaconda3 的常…...
嵌入式硬件篇---无线通信模块
文章目录 前言一、四种无线串口模块深度对比二、模块优缺点分析1. 蓝牙模块(HC-05)优点缺点 2. WiFi模块(ESP8266)优点缺点 3. 2.4G射频(NRF24L01)优点缺点 4. LoRa模块(SX1278)优点…...
MySQL 索引(二)
文章目录 索引理解MySQL对page做管理page的概念单个page多个page 页目录单页情况(提高page内部的查找的效率)多页情况(提高page间的查找效率)复盘一下为什么选择B树,不选择其他数据结构呢聚簇索引 VS 非聚簇索引 索引操…...
代码随想录算法训练营第六十天| 图论7—卡码网53. 寻宝
图论第七天,prim和kruskal算法,说实话都没看的很懂,有点抽象难理解,只能照着题解理解一下了。 53. 寻宝(prim) 53. 寻宝(第七期模拟笔试) 复制一下网站上的prim算法的结论 prim算…...
「OC」源码学习—— 消息发送、动态方法解析和消息转发
「OC」源码学习—— 消息发送、动态方法解析和消息转发 前言 前面我们在学习alloc源码的时候,就在callAlloc源码之中简单的探究过,类初始化缓存的问题,我们知道在一个类第一次被实例化的时候,会调用objc_msgSend去二次调用alloc…...