码蹄杯练题纯享版

news2026/5/6 1:05:52
2026年码蹄杯题集目前为止做的都是青铜与白银难度的题目然后就只是将自己思考的比较深的题目放在这里做一个记录了其他非常非常简单的题目没有记录在这里黄金及以上会在后面慢慢去挑战MC0505厨房里练手艺专诸为了完成刺杀任务天天在厨房练习藏剑于鱼肚的技巧反复模拟刺杀动作。经过几个月的训练他手法越来越熟练。他记录了一个长度为nn的整数序列a1​∼an​表示这一系列动作的初始熟练度。在接下来的q次训练调整中每次操作可能是以下三种之一·1 l r x将al∼ar​都加上x。·2 l r x对于al​∼ar​每个数若它大于x则将其变成x否则不变。·3 l r问你​等于多少请处理所有操作并输出每次操作类型3的询问结果。格式输入格式第一行两个整数n,q(1≤n,q≤104)n。第二行nn个整数a1∼an(1≤ai≤10)。接下来q行每行三个整数或者四个整数表示询问或者操作其中满足1≤l≤r≤n,1≤x≤10。输出格式对于每个询问输出一行一个整数表示答案。样例 1输入6 3 3 3 1 2 6 6 2 5 6 3 1 1 5 1 3 2 6输出16样例 2输入5 2 1 2 3 4 5 3 1 3 3 3 4输出6 7本题相关知识点 语言基础数组 语言基础循环结构思考这个题主要考察的是数组题目本身不难直接遍历就能解决代码如下#includebits/stdc.h #define N 10004 using namespace std; int a[N]; int main( ) { int n, q; cin n q; for(int i 0; i n; i) cin a[i]; while(q--) { int num, l, r, x; cin num l r; if(num 3) { int ans3 0; for(int i l-1; i r; i) ans3 a[i]; cout ans3 \n; } if(num 1) { cin x; for(int i l-1; i r; i) a[i] x; } if(num 2) { cin x; for(int i l-1; i r; i) { if(a[i] x) a[i] x; } } } return 0; }MC0506摆酒席设圈套公子光设宴邀请吴王僚吴王虽心存疑虑但仍前来赴宴。公子光早已布置武士埋伏在四周并让专诸将短剑藏于烤鱼之中准备在宴席上发动刺杀。为了评估动手的最佳时机公子光记录了宴会上每道菜的美味度形成一个长度为nn的整数序列a1∼an。现在他想知道有多少个四元组(q,w,e,r)(q,w,e,r)满足1≤qwer≤n且aqawaear这种模式表示在两道美味度相同且较高的菜品出现时吴王僚的注意力被吸引是动手的良机。请输出满足条件的四元组数量对10007取模的结果。格式输入格式第一行一个整数n(1≤n≤3000)。第二行nn个整数a1∼an(1≤ai≤109)整数之间用一个空格隔开。输出格式一行一个整数表示答案。样例 1输入4 1 3 3 2输出1本题相关知识点 语言基础数组思考这个题一开始看到本人就有些许害怕了哈哈哈哈因为也就只会纯暴力去遍历然后计数想着想着就忘记思考题目了然后就只剩下恐惧就被aqawaear所吸引尤其是中间两个元素还是相等的然后我就因为粗心然后被误导了一度以为中间两个元素是相邻的所以去提交了好几个WA不中了orzok回到正题这里我们知道awae然后we我们可以遍历整个数组找到两个相等的元素然后再依次去统计左边小于aw的元素个数l以及右边小于ae的元素个数r然后根据排列组合得到这个awae四元组的个数为l×r左边有l个选择右边有r个选择所以一共计算l×r组遍历完整个数组后就能得到所有四元组的个数。但是提交之后超时了orz直接暴力超时版本代码如下// 21个示例只通过了20个示例 #includebits/stdc.h #define N 3003 #define M 10007 using namespace std; long long a[N]; int main( ) { int n; cin n; for(int i 0; i n; i) cin a[i]; long long cont 0; for(int i 1; i n-1; i) { for(int k i1; k n-1; k) { if(a[i] a[k]) { long long l 0, r 0; for(int j 0; j i; j) { if(a[j] a[i]) l; } for(int j k1; j n; j) { if(a[j] a[k]) r; } cont l*r; } } } cout cont%M; return 0; }然后我痛定思痛还去问了小豆包最后反应过来似乎我现在的代码是每找到一组awae我都会去重复计算满足条件的元素个数emmmm这就是超时的主要原因了所以假设我们现在找到了第w个元素和第e个元素相等如果我们能提前算出前w个有多少是小于aw与后n-e-1个是有多少小于ae的后面再去遍历找相等时直接取元素个数值出来相乘计算的话就能解决刚刚的问题了。所以在新的代码里面我就在一开始就去计数将每一个元素a[i]所对应的左边小于其的个数和右边小于其的个数分别存入了l[i]和r[i]后面在寻找相等的a[w]a[e]也就是代码里面的a[i]a[k]元素时就直接将l[w]×r[e]也就是代码里面的l[i]*r[k]就能得到当前可以组合的四元组个数了AC代码如下#includebits/stdc.h #define N 3003 #define M 10007 using namespace std; long long a[N], l[N], r[N]; int main( ) { int n; cin n; for(int i 0; i n; i) cin a[i]; long long cont 0; // 预处理左边小于a[i]的元素个数后面查表直接用用空间换时间 for(int i 0; i n; i) { for(int j 0; j i; j) { if(a[j] a[i]) cont; } l[i] cont; cont 0; } // 预处理右边 for(int i 0; i n; i) { for(int j i1; j n; j) { if(a[j] a[i]) cont; } r[i] cont; cont 0; } for(int i 1; i n-1; i) { for(int k i1; k n-1; k) { if(a[i] a[k]) { cont l[i]*r[k]; } } } cout cont%M; return 0; }最后这个题一定不要忘记了还要对10007取模并且数组的范围是1e9的所以用long long。还想说一句话这个我问过豆包后才知道原来处理这里超时的方法实则是借鉴了动态规划的用空间换时间的思想所以也算是接触到了看似难的算法只不过这道题没有那么那么难主要是这里预处理的思想我真的觉得太妙了所以忍不住又多了几句话希望自己后面多看看。MC0513水淹晋城险象生智伯下令引汾水灌城晋阳城墙被水浸泡眼看就要倒塌。城中百姓架起木筏逃生粮仓被淹情况十分危急。赵襄子站在城头望着滔滔洪水心中对城里剩余的粮食数量万分焦急。现给定整数n粮仓初始存粮为n!石守军每日固定消耗2026石粮食。当存粮不足2026石时停止消耗。请计算最终粮仓剩余的粮食数量即n! mod 2026的值。其中x mod y表示x对y取模的结果。格式输入格式一行一个整数n(1≤n≤106)。输出格式一行一个整数表示答案。样例 1输入1000输出596本题相关知识点 语言基础循环结构思考这个题是阶乘最后取模如果就直接进行乘n过大时就算使用的是long long类型的变量仍然会溢出所以我们就可以考虑边乘边取模这里的原理也是我向豆包学习后才知道的(a*b) mod M[(a mod M)*(b mod M)] mod M具体代码如下#includebits/stdc.h using namespace std; int main( ) { int n; cin n; long long sum 1; for(int i 2; i n; i) { sum sum * i % 2026; // 边乘边取模防止溢出原理是(a*b)mod M[(a mod M)*(b mod M)] mod M } cout sum % 2026; return 0; }MC0517义释壮士显胸襟赵襄子发现豫让后质问豫让豫让直言欲为智伯报仇。左右欲诛杀之襄子叹道”彼义士也吾谨避之耳。”遂下令释放豫让。赵襄子释放豫让后为防其再度行刺在宫中布置了n个重点防守的哨点第ii个哨点坐标为(xi,yi)。襄子下令进行m次全面巡查每次巡查有三个参数x,y,r表示以(x,y)为中心r为半径的圆形区域。现在需要统计在所有巡查结束后每个哨点总共被重点检查了多少次以便调整后续的布防策略。格式输入格式第一行两个整数n,m(1≤n,m≤104)。第2∼n1行第i1行包含两个整数xi,yi(1≤xi,yi≤104)整数之间用一个空格隔开表示第ii个哨点的坐标。接下来m行每行三个整数x,y,r(1≤x,y,r≤104)表示一次巡查的中心坐标和半径。输出格式输出一共n行每行一个整数其中第ii行代表第ii个哨点被巡察的次数。样例 1输入5 3 3 1 1 1 2 2 3 3 4 4 1 1 1 2 1 3 3 1 2输出2 3 2 2 0本题相关知识点 语言基础公式与计算思考这个题我一开始又想歪了看到坐标就会不自觉想到二维坐标系但是既然提到了圆的半径所以我们直接计算每一个坐标点与圆心的距离再将其与半径比较就能知道被搜索了多少次MC0516题的话就是能得到是否被搜索过然后再记录下来即可然后这里存坐标的话我是直接用的二维数组m行2列然后遍历行去与圆心做距离的计算。注意此题与MC0516的思路是一样的就只是最后存储输出的不一样而已。代码如下#includebits/stdc.h using namespace std; int a[10004][2], c[10004]; int main( ) { int n, m; cin n m; for(int i 0; i n; i) { cin a[i][0] a[i][1]; } while(m--) { int x, y, r; cin x y r; for(int i 0; i n; i) { // 直接算距离若是小于搜索半径的就能被找到因此cont double len sqrt((x-a[i][0])*(x-a[i][0])(y-a[i][1])*(y-a[i][1])); if(len r) c[i]; } } for(int i 0; i n; i) cout c[i] \n; return 0; }MC0549专诸市井被荐吴国市井之中专诸正与众人搏斗场面激烈。伍子胥路过见专诸勇猛心生赏识想引荐给公子光。为考验专诸的应变之能伍子胥设计了一道题目假设市井中的摊位排布在一条直线上共有n个摊位其中第i个摊位的坐标为xi这n个点的位置互不相同且构成一个连续的整数集合。每个摊位初始的分数值都为0。接下来有m次事件发生每次事件给出一对整数l,r对于∀i∈[1,n]若l≤xi≤r则本次操作该点分数值不变否则该点分数值加1。现在需要专诸计算在m次事件之后所有摊位的分数总和是多少由于结果可能很大请输出其对10007取模后的结果。连续的整数集合把这个集合中的数字从小到大排序后满足后一个数值等于前一个数值1。格式输入格式第一行两个整数n,m(1≤n,m≤3×1e5)。第二行n个整数x1∼xn(1≤xi≤1e9)。接下来m行每行两个整数l,r(1≤l≤r≤1e9)表示一次操作。输出格式一行一个整数表示操作结束后所有点的分数值之和对10007取模的结果。样例 1输入5 2 3 5 4 7 6 4 100 1 3输出5本题相关知识点 语言基础选择结构语言基础循环结构思考整个题的思路其实非常之简单就是找到数组元素里面不在l和r范围内的元素个数然后每一次操作的个数都加起来最后取模就是答案了。但是如果就这样直接暴力遍历整个数组的话其实是会超时的我们可以来看看时间复杂度如果直接暴力的话就是O(m*n)已经是10的10次方了所以超时是必然的所以就得想想其他办法了。再观察观察题目我发现其实数组x里面存的值其实是不会改变的然后我们要找的也是l和r范围外的元素个数所以这里就可以将数组x进行一个排序这里是直接使用了sort(x, xn)如果是直接和个数挂钩的话实则在排完序后直接分别记录第一个小于l的元素的位置L以及最后一个大于r的元素的位置R最后在l和r范围外的元素个数就是n-(R-L1)了然后每操作一次就加上这里为了防止加上过大溢出我仍然是使用的边加边取模。再仔细想想我要降低时间复杂度然后找数组位置不禁就能联想到二分查找进行时间复杂度的验证二分后时间复杂度将会为O(log(m*n))可以发现的确是会降低所以就尝试着写二分查找了。二分查找的函数我个人浅浅尝试写了一下如下int find_left(int val) { int l 0, r n-1, mid; while(l r) { mid (lr)/2; if(val x[mid]) r mid - 1; else l mid 1; } return l; // 这里浅浅尝试写的是找的从左往右第一个大于val(也就是输入的l)的元素位置 } int find_right(int val) { int l 0, r n-1, mid; while(l r) { mid (lr)/2; if(val x[mid]) l mid 1; else r mid - 1; } return r; // 这里浅浅尝试写的是找的从左往右最后一个小于val(也就是输入的r)的元素位置 }整道题的代码如下#includebits/stdc.h using namespace std; long long x[300005]; int n, m; int find_left(long long val) { int l 0, r n-1, mid; while(l r) { mid (lr)/2; if(val x[mid]) r mid-1; else l mid1; } return l; } int find_right(long long val) { int l 0, r n-1, mid; while(l r) { mid (lr)/2; if(val x[mid]) l mid1; else r mid-1; } return r; } int main( ) { cin n m; for(int i 0; i n; i) cin x[i]; sort(x, xn); long long l, r, cont 0; while(m--) { cin l r; long long L find_left(l); long long R find_right(r); long long in R-L1; long long out n-in; cont (contout)%10007; } cout cont%10007; return 0; }碎碎念五一假期可以小小的休息但是还有正事要做等这些都完事了可以放一个大大的假加油加油冲冲冲

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…