随笔分类 -  题解

摘要:一开始考虑枚举 $i$ 或 $k$ 来统计,发现需要 $O(n^2)$ 的时间复杂度。 因此考虑枚举 $j$,我们可以用 $l_x$ 表示满足 $i const int N=3e5+5; int n; int a[N]; int l[N],r[N]; long long ans,sum; int m 阅读全文
posted @ 2023-09-03 10:37 Scorilon 阅读(30) 评论(0) 推荐(0)
摘要:因为 $n$ 很小,所以考虑状压 dp。 令 $sta$ 为一个二进制整数,表示当前第 $i$ 个点有没有被匹配。 那么显然对于每一个 $sta$ 第 $i,j$ 两点未被匹配的都可以用边 $(i,j)$ 来转移,即 $dp_{sta \cup \{i,j\}} \gets dp_{sta}+w_{ 阅读全文
posted @ 2023-09-03 10:37 Scorilon 阅读(129) 评论(0) 推荐(0)
摘要:对于第二种操作,很容易想到只有 $1$ 或 $2$ 两种答案,若该区间内存在 $01$ 这个子序列,那么答案为 $2$ 反之为 $1$.可以通过对该 $01$ 串做一个前缀和,若出现 $01$ 这个子序列就累加,最后判断左右端点是否相等即可,时间复杂度 $O(n)$. 对于第一种操作,$\text{ 阅读全文
posted @ 2023-08-29 23:39 Scorilon 阅读(106) 评论(0) 推荐(0)
摘要:赛场上思路出来了但是代码没调出来。 首先考虑右端点,很明显,要让操作后的序列字典序尽量地大,那么就要使操作后的序列第一个数尽量地大,考虑 $n$ 或 $n-1$,如果 $n$ 在原序列的第一个位置,那么此时无论怎么调整都无法使得它在新序列的第一个位置,此时就要考虑让 $n-1$ 在新序列的第一个位置 阅读全文
posted @ 2023-08-29 23:38 Scorilon 阅读(63) 评论(0) 推荐(0)
摘要:### Updated #### 2023.07.05 修正了一处笔误,在此感谢@[DWT8125](https://www.luogu.com.cn/user/390228) ### 题解 首先先推一下柿子,因为数据范围很大,所以考虑矩阵加速递推。 根据题意给的递推式,可得: $$\begin{a 阅读全文
posted @ 2023-08-29 23:38 Scorilon 阅读(62) 评论(0) 推荐(0)
摘要:### 总述 此题用区间 dp 解决,二维前缀和优化。 ### 朴素做法 **阶段**:自上而下数每一层。 **状态**:$dp_{i,l,r}$ 表示自上而下数第 $i$ 行中在 $[l,r]$ 摆积木的方案数。 **状态转移方程**:根据题意可知,若要在 $[l,r]$ 中摆积木,那么 $[l, 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(105) 评论(0) 推荐(0)
摘要:首先考虑无解的情况,很明显 $a_n$ 必须为 $0$,否则没有解,因为如果最后一位为 $1$ 那么必须有 $n$ 这个数存在于 $b$ 序列中,而这种情况时不符合题意的。 然后考虑如何求解,先考虑一种比较特殊的情况,就是若干个 $1$ 后面接着一个 $0$,这里假设 $1$ 的数量有 $k$ 个, 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(37) 评论(0) 推荐(0)
摘要:首先这是一道很明显的换根 dp。 首先注意到要拼接数,所以我们可以先处理出 $num_i=10^{x}$,使得 $10^x > a_i > 10^{x-1}$,这样方便我们后面算贡献。 我们以这棵树为例子来推状态转移方程。 ![](https://cdn.luogu.com.cn/upload/im 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(46) 评论(0) 推荐(0)
摘要:先注意到我们娱乐值损耗的多少只与最后一场电影有关系,所以假设最后一场电影看的下标为 $k$,那么最后就要减去 $d \times k$。 得出这个性质之后开个小根堆反悔贪心即可,首先 $a_i0$ 的,如果还没到 $m$ 场电影,我们就直接往里塞就可以,如果到了,我们就进行反悔操作,取出已选的贡献最 阅读全文
posted @ 2023-08-29 23:36 Scorilon 阅读(33) 评论(0) 推荐(0)
摘要:首先把式子拆一下,可以知道 $x-i \ge |y-j|$ 等价于 $x-y \ge i-j$ 和 $x+y \ge i+j$,注意到每次操作 $(i,j)$,影响到的点 $(x,y)$ 均要满足 $x>i$,那么我们每次就必须要按照从上往下的顺序进行,否则上面的点无法影响到,即从第一行开始操作。 阅读全文
posted @ 2023-08-29 23:36 Scorilon 阅读(37) 评论(0) 推荐(0)
摘要:注意到交换操作,无法改变下标的奇偶性,因此只能通过考虑翻转操作改变。注意到如果 $i$ 是奇数,那么要令 $i+k-1$ 为偶数的话 $k$ 必须为偶数,若 $i$ 是偶数,要令 $i+k-1$ 是奇数的话,$k$ 也应为偶数,而 $k$ 为奇数的情况翻转了也无法改变奇偶性。 因此通过 $k$ 的奇 阅读全文
posted @ 2023-08-29 23:35 Scorilon 阅读(34) 评论(0) 推荐(0)
摘要:原题链接 -> 题意 给定一个长度为 $n$ 的环,求一个 $a_j \ge b_i$ 且距离最近的点。 题解 对于 $20%$ 的点,直接暴力向左右扩展就可以。 对于 $100%$ 的点,先断环成链,三倍空间。我们注意到随着区间的扩大,最大值是呈非严格单调递增的状态的。因为区间扩大的同时也包含着原 阅读全文
posted @ 2023-02-12 18:44 Scorilon 阅读(68) 评论(0) 推荐(0)
摘要:$\tt{A\ Even\ Triangle}$ 一道送分的题,为了不要平均分太低。 首先可以发现,每一行的项数其实是一个形如 $2,4,6,8,\dots$ 的等差数列,那么可以求出最后一项就是 $2 \times (\frac{\frac{(2+n)*n}{2}}{2}-1)$,那么前一项就是 阅读全文
posted @ 2023-01-14 22:04 Scorilon 阅读(50) 评论(0) 推荐(0)
摘要:模型建立 首先,题意应该很清楚了,我们可以拟一条数轴,通过样例一来辅助理解题目,建立模型。 由此易得 $A'=A+f_At$ $B'=B+f_Bt$. 因此我们就可以得出 $A\ B$ 的位置,也易得 $AB$ 的长度。 这是模型的建立,涉及到一点点入门的平面几何。 10pts/20pts/50pt 阅读全文
posted @ 2022-11-24 12:47 Scorilon 阅读(28) 评论(0) 推荐(0)
摘要:因为要使求得的排列链最长,所以我们可以先思考最长是多少。 因为排列链的固定性是向下递减,所以每次固定性减 $1$ 所得的排列链肯定是最优情况。 所以我们考虑每次交换元素时令固定性只减 $1$。 那么在刚开始的操作中,要使排列链无序,那么就令任意两个元素交换其位置,为了方便后续操作,将 $1$ 和 $ 阅读全文
posted @ 2022-08-06 13:35 Scorilon 阅读(92) 评论(0) 推荐(0)
摘要:题意 给定一个正整数 $n$,构造一个排列(一个长度为 $n$ 的序列,其中由 $1 \sim n$ 构成,不重复)使其权重最小。 思路 既然要使权重最小,那么就让每一个位置 $i$ 上的元素为 $i+1$ 或 $i−1$,且保证不重复(开个数组记重),可以证明当 $i$ 大于等于 $2$ 时,$i 阅读全文
posted @ 2022-07-27 21:44 Scorilon 阅读(120) 评论(0) 推荐(0)
摘要:题意 给定一个长度为 $n$ 的序列 $a$ 以及一个长度为 $m$ 的字符串 $s$,初始 $s$ 均为 $\text{B}$,第 $i$ 次操作可以把 $s_{a_i}$ 或 $s_{m+1-a_i}$ 修改为 $\text{A}$,求修改过后的字典序最小的 $s$。 思路 因为要使字典序最小, 阅读全文
posted @ 2022-07-22 14:45 Scorilon 阅读(58) 评论(0) 推荐(0)
摘要:题意 有三扇门,每扇门都有一把钥匙与该门上的数字相对应,若数字一样就可以打开。 其中有两扇门后有钥匙,一扇门后为空。 现拥有一把钥匙 $x$,给出三扇门后的钥匙(若为 $0$ 即门后没有钥匙),询问是否可以将三扇门都打开。 思路 想要打开三扇门,就需要有三扇门的钥匙,那么前两扇可以打开的门后就必须要 阅读全文
posted @ 2022-07-22 14:22 Scorilon 阅读(129) 评论(0) 推荐(0)
摘要:题意: 给定一队人的身高,将其分成两队,问能否实现前面的人均低于后面的人至少 $x$ 个单位长度。 做法: 将这队人的身高进行排序,$h_1 \sim h_n$ 即为第一队,$h_{n+1} \sim h_{2n}$ 即为第二队,两队前后进行比较即可。 证明: 将其身高进行排序之后,若第 $i$ 与 阅读全文
posted @ 2022-07-18 23:11 Scorilon 阅读(45) 评论(0) 推荐(0)
摘要:给定一个矩阵,判断最少将多少个格反转后使得旋转零度,九十度,一百八十度,二百七十度相等。 枚举矩阵每个位置是 $0$ 还是 $1$,若已经判断过则跳过,全统 $1$ 和全统 $0$ 取操作数小值。 #include<cstdio> #include<iostream> #include<cstrin 阅读全文
posted @ 2022-07-15 09:02 Scorilon 阅读(199) 评论(0) 推荐(0)