2025.11.23 NOIP 模拟赛总结&题解
2025.11.23 NOIP模拟赛 赛后总结和简要题解
共 42 篇文章
2025.11.23 NOIP模拟赛 赛后总结和简要题解
2025.11.22 NOIP 模拟赛总结&题解
Codeforces Round 1064 (Div. 2) A-E题解。 - 题解 - CF
记录一下自己刷的思维题。
图论算法合集之最小生成树。本文记录最小生成树算法的相关知识、代码及例题题解。
突然发现有好多之前没过的比赛题还没有补。。那就顺便水一篇博客吧!
记录我自己搭建的HomeLab的配置记录,包括硬件、软件、网络等方面。
学习动态规划的时候,在Youtube上看到了MIT6.006的算法课程,其中的动态规划部分,提出了一种好用的SRTBOT框架来解决动态规划问题。所以在这里做一下记录。
在dp学习过程中的一些理解及总结,长期更新。
Codeforces Round 1060 (Div. 2) A-E题解。
Codeforces Round 1059 (Div. 3) A-G题解。
记录树状数组这一数据结构的相关知识、代码及例题题解。
首先我们可以发现,在第 $i$ 个点上时,所得的得分为从 $1$ 到 $i$ 之和减去跳过的问题。所以此题可以转化为求跳过的题目的最小值。所以答案
Alice有 $a$ 枚硬币,她想要将硬币存入银行,但是开立存款的最低金额为 $b$,如果金额不足,可以花费 $x$ 个硬币使得存款的最低金额减少
给定 $n$ 个按钮,每个按钮对应 $a_i$ 瓶柠檬水,你不清楚哪个按钮对应哪个 $a_i$,按下按钮后,如果有柠檬水就会掉落一瓶,反之则没有任何东西。求至少按多少次按钮可以保证至少收到 $k$ 瓶柠檬水。
给定 $n$ 个二维数组,每个数组的长度为 $2$,将这 $n$ 个数组连接起来,要使得数组中的逆序对数量尽可能的少。
P5686题目解析
给定一个正整数 $n$,每次可以将其拆分成 $k$ 个数,求将 $n$ 变为 $n$ 个 $1$ 的最少操作次数。
通过观察此数据,可以发现,构造出的数字的二进制存在规律,即将 $n$ 从末位开始将每个 $1$ 都去除一次,这样可以使得相邻两个数的异或值都为 $n$。
根据题意,每次操作可以将 $[l,r]$ 区间的数变为 $1$ 个**多数**,要求能否转化为 $a=[1]$。不难想出,
众所周知,我们将摒弃破旧垃圾的xyxy旧OJ,开始使用新的OJ——云兰阁(Yunlan Court)。那么它与旧的xyxyOJ有什么区别和更新呢,我们应该如何高效使用云兰阁来刷题提升呢?这篇博客将会为你解答所有疑问。 使用的第一步——首页 进入云兰阁,你将会看到这样一个界面: 可以看到,在这个首页上有许多板块。接下来我会一一介绍。 首页轮播图 在首页的靠左侧,有一个轮播的图片,没什么用单纯美观。...
分析 一道简单的模拟题,考场很快想出正解。 然后考虑小C获胜的情况:小C想要获胜,作为先手,只有自己的杀比小D的闪要多,或者自己的斩比小D的杀要多时.他是一定能获胜的。即 sha_1>shan_2 或 zhan_1>sha_2 时,小C获胜。 首先分析题意,不难发现:杀与闪是克制关系,斩和杀是克制关系。 接下来考虑小D获胜的情况:在小C第一轮不能获胜后,小C能做的最优策略就是尽可能...
题意简述 给定两个01字符串 s,t,你需要在 s 之中插入任意个字符串 t,使得新的字符串 s 中相邻的两个数都不同。 题意分析 由于字符串只有 $0$ 和 $1$,所以最终的字符串一定是 01010101 或 10101010 的形式。而插入的字符串是固定的,所以首先考虑字符串 s,如果一个字符串中同时出现 11 和 00 时,字符串一定不能“变好”。 然后我们考虑字符串 t 的形...
9.15 明天第一轮,今天晚上去机构集训,凌晨才到家,玩了会游戏颓废就睡了。 9.16 一进孝中就看见xp和hky,和他们一块去了考场。 因为去的比较早,在考场溜达了一圈,和朋友聊了一会,就准备J组比赛了。J组的题不难,做到11:30的时候可以提前交卷,但我又继续做了会,和lyx一块出的考场。还拍了一张孝中的CSP海报。 中午睡了一觉,对付一口饭就去考场了,下午依然很瞌睡,S组题目有点难,瞎做...
分析 很简单的一道构造题。 因为第一个数是必取的,所以只需要从第二个数开始判断,即如果 b_{i-1}\le b_i,就不需要在这两个数之间添加别的数。 反之,如果不满足,我们就需要在这两个数之间添加一个 b_i,这样就可以保证它满足 b_{i-1}\le b_i 的条件。 所以我们只需要先跑一次循环计算出 m 的值,将 m 和 a_1 提前输出,然后循环输出剩下的数即可。 Code ...
题目简述 在 n 个回答中找到长度不超过 $10$ 且质量最高的回答。 题目分析 就是个普通模拟,如果 a_i\le 10,就打擂台找最大质量,更新序号。 Code #include <bits/stdc++.h> using namespace std; #define ll long long #define int ll const int MaxN = 1e6 + 100;...
题目简述 在 $8 \times 8$ 的点网格上,一个由小写拉丁字母组成的单词从上到下垂直地写在一列中。你需要找到他并输出 题目分析 由题意可得,网格中只会有一个单词,所以只需要自上而下遍历网格,如果是字母就输出即可。 Code #include <bits/stdc++.h> using namespace std; #define ll long long #define int...
看到讨论区都是二分,实际上这道题用贪心来写非常简单 题目分析 首先将当前塔台的位置加上通讯距离(即 a+b )看作为右边界,通过题目不难得出一个贪心策略:如果当前塔台 i 能到达的最右边界比往后的塔台 i+m 位置还要靠右,就可以忽略塔台 i+1 到 i+m。转化一下,我们只需要每次记录可以到达的最右边界,如果当前塔台的位置不在最右边界的范围内,就可以更新答案取超频的最大值。 因此,我们...
搜索 搜索就是对状态空间进行枚举来查找所有种可能来找到问题的最优解或可行解的个数。搜索一般时间或空间复杂度很高,所以有很多优化方法,如记忆化、减枝等。 注意 不同的搜索题目大都不相同,DFS/BFS两种算法更像是方法,要理解它的思想并灵活运用,死套模板是没有用的。要根据不同的问题来选择更好的方法来解决。 一.DFS 深度优先搜索 定义 一种用于遍历或搜索树或图的算法(俗称 不撞南墙不回头算法 ) ...
递归 概念 递归,在数学和计算机科学中是指在函数的定义中使用函数自身的方法,在计算机科学中还额外指一种通过重复将问题分解为同类的子问题而解决问题的方法。 本质 递归的实质就是直接或间接调用自身函数,将原问题转化为性质相同规模不同的子问题。 递归代码最重要的两个特征:结束条件和自我调用。自我调用是在解决子问题,而结束条件定义了最简子问题的答案。 主要格式 int func(传入数值) { if ...