自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 CF1498C

dp_{i,j-1}$ 表示之前提到过的第一种情况,$dp_{i-1,n-j}$ 代表直接穿过只剩下了 $n-j$ 面墙。看到数据范围 $n \le 1000$ 并且 $k \le 1000$,立刻就想到了可以用 $O(nk)$ 的做法。给定一个值为 $k$ 的粒子,需要穿过 $N$ 堵墙,每穿过一次就会向反方向发射值为 $k-1$ 的粒子。定义 $dp_{i,j}$ 为权值为 $i$ 的粒子已经穿过了 $j$ 面墙的答案。对于每一个状态可以直接往回走也可以继续穿过墙壁分裂出一个 $i-1$ 的粒子。

2026-02-12 17:01:03 31

原创 CF448E Divisors

1. 题目只求前 $10^5$ 个数,所以当题目中的 $X$ 大于 $10^5$ 时,输出则为全时 $1$。定义 $dfs_{x,y}$ 为计算 $x$ 次操作后要分的数是 $y$。2. 预处理出 $X$ 的因数,递归时就不用在分解因数了。也没什么,就是这个题的数据范围比较大。

2026-02-12 16:59:53 192

原创 CF2010C2 Message Transmission Error (hard version)

当 $2 \times t > |s|$ 时,那么说明 $s$ 的最长公共前缀和后缀有相同的部分,相同处就为原串发生合并的地方,原串也就是从 $s$ 的最长公共前后缀。求是否存在字符串 $s_1$ 既是 $s$ 的前缀又是 $s$ 的后缀,并且 $s_1$ 的长度大于 $s$ 的一半。先求出 $s$ 的最长公共前后缀长度,记作 $s_1$,如果 $k \times 2 > |s|$,哪么原串就是从 $s$ 的最长公共前后缀。可以先尝试暴力枚举,但时间复杂度 $O(n^2)$,肯定会超时。

2026-02-11 22:24:54 620

原创 P9948 [USACO20JAN] Race B

该计算距离,因为每秒速度最多只能变化 $1$,现在就成了几个等差数列组成,通过算出的 $x$ 辅助分层,因为 $x$ 在梯形或三角形的顶端所以通过找出速度为 $x$ 米每秒的距离的左端点和右端点作为临界点即可完成分层,再使用等差数列求和公式计算就可以算出在时间为 $mid$ 秒时最多可以跑多少的距离。Bessie 在跑步,总共有 $K$ 米,一开始速度为 $0$,每秒钟可以将速度增加 $1$ 米每秒,或者减少 $1$ 米每秒,或者速度不变。并要求到达终点时的速度不超过 $X$ 米每秒,问最少要花多少时间。

2026-02-11 22:23:27 851

原创 AT_jag2017summer_day1_h イベルタル

当 $x\le0$ 时,答案为 $4 \times x - 2 \times y - 3$。有一个宝可梦,一开始在 $(x,y)$ 这个位置,现在要移动到 $(0,0)$ 这个位置。- 否则答案为 $-2 \times x - 2 \times y - 3$。- 当 $x=y$ 并且 $y>0$ 时,答案为 $2 \times y$。- 当 $x=0$ 时,答案为 $-2 \times y$。- 当 $x<y$ 时,需交换 $x$ 于 $y$ 的值。以下结论打表手推即可得出。

2026-02-10 21:42:28 434

原创 CF2169C Range Operation

我们考虑每一个 $a_i$ 的影响,令第一位的下标为 $l$,影响就是 $i-l+i+l=2 \times i$,我们就可以知道如果选择的区间里面有 $a_i$ 那么对答案的贡献度就是 $2 \times i -a_i$。注:$i-l+i+l=2 \times i$ 的意思是前面 $i-l$ 个数每个数都加上 $1$,$a_i$ 变成 $i+l$。按照上面将 $a_i$ 变成 $2 \times i - a_i$ 再求出最大字段和加上原来的 $a_i$ 之和就是答案。

2026-02-10 21:29:13 359

原创 CF1743D Problem with Random Tests

而对于第一个不是前导零的 $0$,我们将其下标设为 $h$,由于随机数据所以 $s_0$ 到 $s_{h-1}$ 之间肯定有 $1$,所以我们可以将这个地方的 $1$ 都是一下成为和 $s_h$ 按位或的情况,我们就可以将其变成 $1$。因为是按位或运算(只要有一位是 $1$ 结果就是 $1$),所以我们需要让匹配到的 $1$ 的数量尽可能多,而在 $s$ 的字段中 $1$ 最多的一定是 $s$(虽然有可能长度更小并且和 $s$ 中 $1$ 的数量一样多的字段但是取 $s$ 肯定没有问题)。

2026-02-09 11:13:26 215

原创 UVA10364

由于可能存在多种拼凑方式,可以使用回溯算法来遍历所有可能的拼凑情况,如果发现当前的分配方式不合法,就退回到上一步,尝试其他的方式,直到找到一种可以围成正方形的拼凑方式或者尝试完所有可能的拼凑方案。- 回溯过程中可能会尝试相同长度的木棍,如果有一根木棍无法拼接到某条边上,那和它长度相同的木棍也不能拼接。- 将木棍按长度从长到短排序,这样可以优先选长的木棍拼,因为短的木棍利用的场景更多,所以优先采用长的木棍,将短的木棍留下来。- 若边长为 $0$ 且加入长度为 $a_i$ 的木棍不符合,直接返回即可。

2026-02-09 10:57:06 225

原创 CF2010C2 Message Transmission Error (hard version)

先求出字符串 $s$ 的最长公共前后缀的长度,我们将它叫做 $h$,如果 $t \times 2$ 比 $s$ 的长度大,就是满足了长度大于 $s$ 的一半这个条件,那么原来的字符串就是答案。当条件满足的时候,那么 $s$ 的最长公共前后缀就有相交的部分,相交的地方就是原串发生合并的地方,所以可以知道原串就是 $s$ 的最长公共前后缀。给你一个字符串 $s$。求是否有字符串 $t$ 既是 $s$ 的前缀又是 $s$ 的后缀,并且 $t$ 的长度大于 $s$ 的一半。

2026-02-09 10:54:21 42

原创 P1695 [USACO19FEB] Measuring Traffic B

有 $n$ 个阶段,每种阶段有三种情况,第一种是只有上匝道,第二种只有下匝道,第三种只有主干道。因为题目是给定了许多范围,并且最后的答案也是一个范围,所以在计算时只需要用两个变量进行记录即可。有可能 $l\le0$ 或 $r\le0$,这时就要对这两个变量和 $0$ 取最大值。说明:上匝道是有其他地方进入高速公路的地方;下匝道是从高速公路出去的地方。

2026-02-09 10:50:00 28

原创 CF2014C Robin Hood in Town

3. 因为对 $a$ 从小到大排序所以数组的第 $\frac{n}{2}+1$ 的位置就是中间值。4. 用平均值计算出有超过一半的人口感到不幸福时钱有多少最后减去总和也就是 $cnt$ 即可。2. 将求出 $a$ 数组的和,$a$ 是输入数组并且将其求和记作 $cnt$。1. 当 $n = 1$ 或者 $n = 2$ 时根据题目条件一定无解。

2026-02-09 09:59:08 26

原创 CF2005B2 The Strict Teacher (Hard Version)

在一个长度为 $n$ 的数轴上有 $m$ 个老师,给出 $q$ 次询问,每每次询问一个学生的位置 $p$。每一回合学生先集体移动一个单位,然后老师再移动一个单位,可以选择不移动,求最后可以抓到多少个学生。- 如果一个学生有一端(左边或者右边)没有一个老师哪么就一直往没有老师的方向走,一直到尽头不动让老师尽可能晚的抓到自己就是最优解。- 如果一个学生两边都有老师,哪么到两个老师的正中间等死就行。使用二分查找快速确定老师位置。

2026-02-09 09:54:34 25

原创 P1508 Likecloud-吃、吃、吃

给定一个 $m \times n$ 的矩阵,每个点都有权值 $a_{i,j}$。走法是前方或左前方或右前方。这个题很想我们经常遇到的走迷宫问题,但是这道题有三种方向,因为 $n \le 10^5$,所以不能用搜索只能用动态规划,将 $dp_{i,j}$ 定义为到第 $i$ 行第 $j$ 列的位置的权值和。如果当前的点是第 $i$ 行第 $j$ 列,那么这个点肯定是从 $dp_{i-1,j}$ 或 $dp_{i-1,j+1}$ 或 $dp_{i-1,j-1}$ 这三个地方转移过来的。

2026-02-09 09:07:22 187

原创 AT_joi2022ho_b 自習 (Self Study)

如何判断答案是否合法?我们将剩下的时间去学习用处不大的学科,如果可以补充完整说明时间足够理解程度也可以尝试更大的值,否则降低要求满足时间的要求。每一个学生有两种学习的方法,第一种是自己学习,第二种是老师教。我们在最后统计答案的时候判断哪一种方法更优即可。如果当前答案不合法那么更大的答案一定也不合法,因为时间是一样的。如果有最小值最大或者最大值最小这些话一般都可以想到二分答案。

2026-02-09 08:02:33 22

原创 CF1840E

发现题目的字符串长度达到了 $10^5$ 的级别不可能普通暴力。我们可以记录每个位置有没有被所定,这样可以更好的让我们进行后面的操作。接下来在维护没有被锁定的字符就可以快速解决操作三。3. 比较操作:遍历所有的位置,比较当前未被锁定的字符是否相同。- 遍历整个序列,跳过被锁定的字符,比较剩余字符即可求出答案。1. 锁定操作:让位置 $p$ 在 $t$ 秒内被忽略。2. 交换操作:交换当前未被锁定操作锁定的字符。代码判断较多建议先整理一遍思路再写代码。- 记录锁定的字符和结束时间。- 维护没有被锁定的字符。

2026-02-08 12:35:11 20

原创 AT_cpsco2019_s1_d

其中两种食物选择方法对第二天的早餐没有影响,因为第一天中 $\frac{1}{4}$ 的选择对第二天没有影响,所以第二天有 $8$ 种合法的选择方案,其余的 $\frac{3}{4}$ 对第二天有影响所以有 $4$ 种合法方案。一共有 $n$ 天,每天有上午,中午,下午,每一个时间可以吃三种食物中的一种,但相邻时间不能吃相同的食物,并且早上只能吃两种食物中的一种。先考虑第一天的情况:早餐只有两种食物可以选择,因为不能连续选择同样的食物,所以午餐也只能有两种选择,同理,晚餐也只有两种选择,

2026-02-08 11:55:40 24

原创 P1508 Likecloud-吃、吃、吃

给定一个 $m \times n$ 的矩阵,每个点都有权值 $a_{i,j}$。走法是前方或左前方或右前方。这个题很想我们经常遇到的走迷宫问题,但是这道题有三种方向,因为 $n \le 10^5$,所以不能用搜索只能用动态规划,将 $dp_{i,j}$ 定义为到第 $i$ 行第 $j$ 列的位置的权值和。如果当前的点是第 $i$ 行第 $j$ 列,那么这个点肯定是从 $dp_{i-1,j}$ 或 $dp_{i-1,j+1}$ 或 $dp_{i-1,j-1}$ 这三个地方转移过来的。

2026-02-08 11:38:53 28

原创 SP26344

如果不满足上一个条件,但是 $C_{i-1} \le a_i$ 或者 $C_{i-1} \le b_i$,则选取 $C_i = \max(a_i,b_i)$。- 如果 $C_{i-1} \le a_i$ 而且 $C_{i-1} \le b_i$ 时,那么 $C_i = \min(a_i,b_i)$。让我们构造一个数列 $C$,要求 $C$ 是一个长度为 $n$ 的非递减序列,并且要满足 $C_i=a_i$ 或者 $C_i=b_i$。- 如果以上两个条件都不满足,便无法满足非递减序列的条件。

2026-02-08 11:35:32 26

原创 CF772A

遍历每个设备,若某一个设备在 $mid$ 时间消耗能量大于初始能量,接下来计算出充电宝需补充的能量并求和,最后对比充电宝提供能量与总补充能量需求。如果 $mid$ 满足条件则记录 $mid$ 在二分后输出,如果答案是很大的值那就说明一直满足,可以无限使用,输出 $-1$。- 二分范围:因为时间不能是负数所以将左边界设为 $0$,右边界设置为很大的值,因为是时间越来越小才能更加满足条件。如果 $t$ 的时间满足题目的条件,那么小于 $t$ 的时间一定满足,这就满足了单调性。

2026-02-08 11:22:25 201

原创 AT_abc395_d

有 $n$ 个鸽子和鸽子的巢穴,第 $i$ 号在第 $i$ 个巢穴中。第二种:将巢 $a$ 中的所有鸽子移动到巢 $b$,并将巢 $b$ 中的所有鸽子移动到巢 $a$。这两次移动同时进行。第三种:给你一个整数 $a$。$1 \le a \le n$ 鸽子 $a$ 报告它目前所在巢的标签。如果第二种采用暴力的话肯定会超时!发现第二种是将两个巢穴中的所有鸽子交换,就可已将巢穴的编号交换,比如将 $1$ 号和 $2$ 号交换,既可以将 $1$ 号巢穴的编号设为 $2$,同理将 $2$ 号的编号设为 $1$。

2026-02-08 11:10:18 204

原创 CF1498B Box Fitting

对于二分答案中的枚举到的每一个中间高度 $H$,使用[优先队列 (堆)](https://blog.csdn.net/bhdwyl/article/details/132949125?本题的核心部分是找到一个最小高度的二维盒子,使得给定的 $n$ 个宽度为 $2$ 的方幂的长条能够在不旋转、不重叠的情况下放入宽度为 $w$ 的盒子中。- 如果在这个模拟过程中,所有长条都能成功放入,说明当前高度 $H$ 是成立的,需要尝试更优解,也就是更小的 $H$,否则需要尝试更大的值。

2026-02-08 11:06:08 35

原创 CF1666L

当一个点已经被访问过时,就说明有可能是找到了两条路径,输出答案即可。如果这个点被遍历了两次,说明这种方法不可行,回溯即可。题目要求从点 $A$ 出发到点 $B$ 存不存在有两种不相交的路径。2. 输出的字符串注意大小写。1. 此题目的图是有向图。3. 注意输出顺序。

2026-02-08 11:03:05 22

原创 CF1766C

如果当前列的第 $i$ 行是 $B$ 且上一列同一行也是 $B$,则可以从左方向转移过来,即 $dp$ 值加 $1$。如果当前列两行都是 $B$,则可以上下走,更新 $dp$ 值为当前值和另一行 $dp$ 值加 $1$ 的最大值。将 $dp_{i,j}$ 表示到第 $i$ 行第 $j$ 列时,能够覆盖的连续的 $B$ 的最大数量。如果第一列的某一行是 $B$,则该行对应的 $dp$ 的值就加 $1$。本题使用动态规划来解决。

2026-02-08 11:01:32 23

原创 AT_abc206_d

对于每一对 $x$ 和 $y$ 来说,进行替换操作就相当于 $x$ 等价于 $y$ ,就可以建立一个 $x$ 的集合来存储那些值于 $x$ 等价。就可以发现问题就变成了一个并查集的问题。有一个长度为 $n$ 的正数序列 $A$,每次可以把序列中的每一个 $x$ 都换为 $y$,求让序列 $A$ 变成回文序列的最少操作次数。用来存储父亲节点的 $f$ 数组的下标其实时题目中的 $A$ 数组,所以再还原时循环次数是 $100000$ 次。

2026-02-08 10:48:13 22

原创 AT_abc225_e

我们如果将每个 $7$ 视为一个区间,对应于其两个端点的[极角](https://baike.baidu.com/item/%E6%9E%81%E8%A7%92/12726003),这样问题就变成了:给定有 $N$ 个区间。首先,在去掉一部分 $7$ 之后,如果仍有从原点不完全可见的 $7$,那么我们也可以去掉这些 $7$,从而不改变从原点完全可见的 $7$ 的数目。那这个问题就可以转换成给我们 $N$ 个 $7$,要去掉其中的一些 $7$,这样从原点就可以看到所有剩下的 $7$。

2026-02-08 10:46:34 185

原创 AT_abc228_e

只要求出这个式子的结果就可以求出答案,但是怎么求出来呢?题目意思非常简单这里就不说了,如果用暴力枚举 $n \le 10^{18}$ 肯定会超时,第一反应就是数学问题,运用乘法原理可以轻易得出答案是 $M^{(K^N)}$。得到公式之后可以使用快速幂优化计算答案的时间解决问题。

2026-02-08 10:41:58 29

原创 AT_abc417_e

只要我们找出 $X$ 到 $Y$ 的所有路径再排序就可以找出字典序最小的路径。不难想到当 $N \le 1000$ 的时候只需要一个深度优先搜索或者广度优先搜索就可以解决这个问题。给定一个有向图求出图中点 $X$ 走到点 $Y$ 的字典序最小的路径。因为有 $t$ 组数据所以需要清空答案数组和用来存储图的容器。

2026-02-08 10:40:45 136

原创 洛谷P12935 [NERC 2019] Balls of Buma

题目给定一个字符串,现在可以选择在任意一个位置插入一个字符。如果插入这个字符后某个相同颜色球的连续段因为之前某个操作而变长,且长度达到了 $3$,那么该连续段的所有球就会被删除。第二个是在满足第一个条件后,两个部分的字母数量之和大于等于 $2$。第三个是中间部分的字母数量至少为 $2$。理解题意后可以想到将字符串压缩成一块一块的形式,在满足题目条件的消除方案的情况下,其满足的条件一共只有三个。要求选择新球颜色和插入位置使得所有球最终被消除的方案总数。最后答案就是最中间的部分的字母数量加 $1$。

2026-02-08 10:37:08 218

原创 CF2169C

我们考虑每一个 $a_i$ 的影响,令第一位的下标为 $l$,影响就是 $i-l+i+l=2 \times i$,我们就可以知道如果选择的区间里面有 $a_i$ 那么对答案的贡献度就是 $2 \times i -a_i$。注:$i-l+i+l=2 \times i$ 的意思是前面 $i-l$ 个数每个数都加上 $1$,$a_i$ 变成 $i+l$。按照上面将 $a_i$ 变成 $2 \times i - a_i$ 再求出最大字段和加上原来的 $a_i$ 之和就是答案。

2026-02-08 10:35:41 295

原创 P2803 学校选址 II

我们可以得出一个二维数组 $g_{i,j}$,代表第 $i$ 栋到第 $j$ 栋楼房最优的放置学校的位置。接下来我们定义动态规划的状态。我们回到原本的问题,当前 $i-1$ 栋楼房里的学生数量比第 $i$ 栋到第 $n$ 栋楼房的学生数量更多时根据前面的结论得出因该建立在第 $i$ 栋房屋上建立学校,否则在 $i-1$ 的位置建立学校。接下来就是普通情况,可以按照最右边的学校对楼房里的学生来分类,如果是建在 $a_l$ 到 $a_i$ 间,那么得出的贡献是 $dp_{l-1,k-1}+g_{l,i}$。

2026-02-06 23:48:52 380

原创 AT_abc201_d题解

如果第一个玩家走到了红色格子则扣分否则加分,如果当前在第 $i$ 行第 $j$ 列,那么就可以移动到第 $i-1$ 行第 $j$ 列或者第 $i$ 行第 $j-1$ 列,对于两个位置先判断是否还在棋盘中接下来对于是蓝色格子还是红色格子分开加分就可以了。不难发现如果当前位置是第 $i$ 行第 $j$ 列则当 $(i+j)$ 是二的倍数时为 $2$ 号选手下,否则为 $1$ 号选手下。有两个人正在下棋,棋盘是一个 $H$ 行 $M$ 列的矩阵,矩阵中的方格可以分为两种,第一种是棋子走到这里可以为选手加分;

2026-02-06 23:44:53 276

原创 P2668 [NOIP 2015 提高组] 斗地主

就是有 $n$ 张牌,然后按题目的要求打出,问最少要出多少次才能将这 $n$ 张牌全部出完。2. 从题目来看三种顺子的使用价值从此题看来是比较大的,所以在搜索时应优先考虑这几种情况。发现题目中 $n$ 的范围比较小并且出牌的方式较为复杂所以不难想到本题可以使用搜索来做。这道题的整体思路较为简单,只用注意代码的实现问题就不大了。void dfs(int z){//计算出牌方案。1. 火箭与对子牌其实可以看成同一种。知道了这些细节,这个题就能做出来了。4. 四带二时可以带两对牌。

2026-02-02 10:50:33 395

原创 哥德尔三大定理(二)

c$ 也是一个哥德尔数,将 $a$ 还原成一个公式成功后将里面所有符号(也可能是数字、未知量等)的哥德尔数为 $c$ 的符号(也可能是数字、未知量等)替换成数字 $b$,这个新的公式的哥德尔数就是 $sub(a,b,c)$。我们令无法证明哥德尔数为 $sub(n,n,17)$ 的命题为 $G$,那么 $G$ 的哥德尔数就是 $sub(n,n,17)$,但是既然可以用哥德尔数表示那么就可以按照上文说的方法证明此命题为真,但是这个真命题所说的是自己不能被证明,所以我们得到了一个是真但不能被证明的命题。

2026-01-07 15:26:25 373

原创 哥德尔编码

我们下一期会讲到三大定理中的第一大定理,这期专栏到此结束,请关注[作者](http://oi.bashu.cn/d/junior/user/328)了解更多信息。[哥德尔编码](https://i.cetsteam.com/imgs/2026/01/05/01f722eee9b360b6.jpeg)1931年,大卫·希尔伯特将每个符号、公式、数字通过一些方式为其对应了一个唯一的质数,如果真的成立的话就可以通过质数表达一个算式。后继的意思是这个数后面的数,比如 $0$ 的后继是 $1$。

2026-01-07 15:25:18 354

原创 对tarjan的一个经典思考

tarjan

2025-11-28 23:06:51 292

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除