题解1545 cf
SP10606 题解
题目大意: 给你两个数 \(l,r\),定义 \(bal(x)\) 代表 \(x\) 是否满足出现过的每一数位,每个偶数出现奇数次,每个奇数出现偶数次。求 \[\sum \limits_{i=l}^{r} bal(i) \]思路: 看到记录每一数位出现几次,就是直接告诉你这是数位dp。至于如何记录每 ......
CF786C Till I Collapse
题外话 根分纸张第一次自己做出根分虽然很水,纪念一下。 \(\text{Links}\) Codeforces Luogu 题意 给定一个长度为 \(n\) \((1\le n\le 10^5)\) 的序列 \(a\) \((1\le a_i\le n)\),对于 \(k=1,2,3,\dots,n ......
洛谷P9290 [ROI 2018] Decryption 题解
include<bits/stdc++.h> pragma GCC optimize(1) pragma GCC optimize(2) pragma GCC optimize(3,"Ofast","inline") define reg register define int long long ......
King's Tour 题解
King's Tour 题面大意 在 \(n\times m\) 的网格中构造一种从 \((1,1)\) 走到 \((a,b)\) 的方案,要求经过所有格子恰好一次,格子之间八联通。 思路分析 模拟赛题,赛时写了一个半小时过了( 思路不是很复杂,但是需要一些分类讨论。 引理:对于任意大小的矩形,一定 ......
【多校联考NOIP#3】比赛复盘 && 题解
A. 卡牌 这次比赛,一道签到题都没有。 本来以为是线段树上二分。就类似于花神的数论题那道,刚开始暴力修改(修改到线段树的每一个叶子节点),然后由于boss的attack在不断增加,到了 \(Att_i >= hp_j\) 的时候, \(j\) 这个牌顶多打一次,如果一个区间的 \(max\) 都小 ......
题解 P2188 小Z的 k 紧凑数
题目描述 小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 \(k\) 的整数特别奇特,称其为 \(k\) 紧凑数。 现在小 Z 想知道 \([l,r]\) 内有多少个 \(k\) 紧凑数,希望你帮帮他。 具体思路 首先,要求数的个数,自然想到数位 dp。 然后可以用容斥原理拆询问 ......
CF1886C Decreasing String 题解
题面 \(S_n\) 由 \(S_{n-1}\) 去掉一个字母得到,\(S=S_1+S_2+...+S_n\) 给定 \(S_1\) 求 \(S\) 的第 \(N\) 位 solution 我们先考虑怎样去字母能保持字典序最小 显然,我们发现如果一个字母比前面那个字母小,那么我们就要删除前面那个字母 ......
CF1886A Sum of Three 题解
Question 给定一个正整数 N ,我们需要找三个不同的整数x,y,z,使得 N = x+y+z,其中下x,y,z不能被三整除 solution 我们把N%3会有一些余数,我们针对余数来讨论,其中我们只关注xyz的余数 如果余数为0 那么也就可能是1+1+1,或者2+2+2,但是考虑到xyz不同 ......
CF1886B Fear of the Dark 题解
Question Monocarp 在一个二维平面上,他的初始点在 \(O=(0,0)\) ,他需要到 \(P(P_x,P_y)\) 不幸的是,他能走的范围在两个圆内,我们给出了两个圆的坐标 \(A=(A_x,A_y)\) ,\(B=(B_x,B_y)\) 两个圆的半径相同,我们需要找到最小的半径让 ......
CF1886D Monocarp and the Set
Questions Monocarp 有 \(n\) 个整数和一个集合,他需要把这 \(n\) 个数添加到集合中,每次添加一次 除了第一次,每次添加元素都会输出一个字符 如果当前添加的元素比原有的元素都要小,那么输出 \(>\) 如果当前添加的元素比原有的元素都要大,那么输出 \(<\) 否则输出 ......
CF1886E I Wanna be the Team Leader
贪心 #动态规划 Question Monocarp 是一家大型 IT 公司的负责人 他有 \(m\) 个项目个项目需要完成,第 \(i\) 个项目的难度为 \(b_i\) 他的团队离有 \(n\) 个程序员,第 \(j\) 个程序员的耐受能力为 \(a_j\) Monocarp 需要分配这些项目, ......
Almost Sorted (CF F ) (压状dp)
思路: 性质1, 相当于重新对这个序列排序 性质2, 等式关于 值域, 对于任意一个都满足, 那么就是 当前点 比前面放入的点 的最大值 - k 都要大, 比后面最小值+k都要小, --> 每一个点都要满足, 那么对于当前点的放置是有限制的,以 值域 来看 1-i 里面都已经放置了, 那么放置 后面 ......
CF1881F Minimum Maximum Distance
给定一棵树,树上的一些点被打上了标记,定义一个节点的贡献为其到所有标记节点距离的最大值,求最小贡献。 \(n \le 2 \times 10^5\)。 这道题的原题是 CF337D(甚至要更困难一些)。 很套路的换根 DP 啊。我们考虑设 \(f_i\) 为 \(i\) 子树内的标记节点到 \(i\ ......
[NOI2014] 字符串(题解)
字符串(题解) 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法。 一句话题意:我们会处理kmp算法中的fail[]数组,来记录[1, i ]的真前后缀的最大 ......
CF1881D Divide and Equalize
solution \(a_i\) 和 \(a_j\) 在操作前后的乘积是不变的,也就是总乘积是固定的。最后要求所有的元素相同,那也就是说所有元素的乘积 \(total\) 一定满足 \(\sqrt[n]{total}\) 是整数。看了看数据范围没有办法直接乘起来,于是考虑分解质因数,最后看一下每个质 ......
[APIO2019] 路灯 题解
LG5445 把询问 \(x,y\) 看作平面上的点 记当前时刻 \(t\),\(l\) 是与 \(i\) 连通的最左端,\(r\) 是与 \(i+1\) 连通的最右端,可以通过 set 维护断边找到 连边 \((i,i+1)\) 时 \(x\in[l,i],y\in[i+1,r]\) 连通了,考虑 ......
CF963B Destruction of a Tree 题解
CF963B Destruction of a Tree 题解 洛谷题目链接 这里提供一个较为朴素的 DP 想法。 题意简述 给定一棵树,节点个数不超过 \(2 \times 10^5\),每次可以删掉度数为偶数的点。问最后能不能删完;能删完给出删除方案。 思路分析 首先可以随便选一个点作为根。 其 ......
ABC214H Collecting 题解
前言 这是一道比较神仙的题目,其后半部分的建图是比较困难想到的,前半部分还是较为容易的。 题意 现在有一张\(N\)个点\(M\)条边的有向图,每个点有一个点权\(a_i\),现在要找出\(K\)条路径,使得这些路径的并集的点权和尽量大。现在求出点权和。 \(N, M \le 2\times 10^ ......
POD 题解
考虑每种颜色都只在一条链上出现这个限制。 考虑使用随机化 \(\text{hash}\),我们对每个点随机一个权值,使得每种颜色所有点异或值为 \(0\)。 这样一种颜色如果只在一条链上,那对两条链 \(\text{hash}\) 异或值的贡献就是 \(0\),否则就是两个随机值。 这样如果存在一个 ......
CF1838E
题面传送门 description 给定长度为 \(n\) 的正整数序列 \(a\) 和正整数 \(m,k\),满足 \(a\) 的值域是 \([1,k]\)。求 \(a\) 是多少个长度为 \(m\) 且值域为 \([1,k]\) 的序列 \(b\) 的子序列。 \(n\leq 2\times 1 ......
CF1801C 做题笔记
题目链接 一道需要挖掘一些性质的 dpt,居然独立想出来了。 本蒟蒻太菜了只会树状数组的做法,单调栈不会。 先考虑只管对答案有贡献的音乐,这当然是正确的,因为我们可以把对答案没有贡献的音乐放到最后。 对于每一首乐曲,我们也能对它进行一个简单的处理来模拟听的过程,维护一个值 $lst$,每次输入的数 ......
CF938F Erasing Substrings 题解
Erasing Substrings 一个神奇的想法是设 \(f_{i,j}\) 表示在位置 \([1,i]\) 中,我们删去了长度为 \(2^k(k\in j)\) 的一些串,所能得到的最小字典序。使用二分加哈希可以做到 \(O(n^2\log^2 n)\),无法承受。 发现对于状态 \(f_{i ......
CF261D Maxim and Increasing Subsequence 题解
Maxim and Increasing Subsequence 首先,我们可以发现,当这个重复次数很大的时候,答案就等于序列中出现的不同权值个数。实际上,这个“很大”就可以被当作“大于等于不同权值个数”。 不同权值个数实际上是 \(\min(n,m)\) 级别的,其中 \(n\) 是序列长度,\( ......
CF979E Kuro and Topological Parity 题解
Kuro and Topological Parity 我们考虑在一张染色完成的图里,我们连上了一条边,会有何影响? \(\bullet\) 在同色节点间连边——明显不会有任何影响。 \(\bullet\) 在异色节点间连边,但是出发点是个偶点(即有偶数条路径以其为终点的节点),终点的路径数增加了, ......
[ARC067F] Yakiniku Restaurants 题解
Yakiniku Restaurants 明显在最优方案中,行走方式一定是从一条线段的一端走到另一端,不回头。 于是设 \(f[i,j]\) 表示从 \(i\) 走到 \(j\) 的最优代价。明显,该代价对于不同的券相互独立。故我们依次考虑每一张券。 我们发现,假设有一张位置 \(k\) 的券,则所 ......
[AGC013E] Placing Squares 题解
Placing Squares 关键是将问题从抽象的“正方形面积”转为具象的形式:一段长度为 \(d\) 的区间,有两个不同的小球要放进去,则总放置方案就是 \(d^2\) ,且不同的区间间方案是通过乘法原理结合的,刚好是题目中 \(\prod d^2\) 的形式。 于是我们可以设计 DP:设 \( ......
洛谷P3713 [BJOI2017] 机动训练 题解
机动训练 这题的瓶颈,在于把 \(a_i^2\) 看作 \(\sum\limits_{i=1}^{a_i}\sum\limits_{j=1}^{a_i}1\),然后我们就可以看成“两两相同的机动路径都能贡献 1”。于是我们设 \(f_{x1,y1,x2,y2}\) 表示两条起点为 \((x1,y1) ......
P1864 [NOI2009] 二叉查找树 题解
二叉查找树 首先该树的中序遍历是唯一可以确定的(直接按照数据值排序即可)。 然后,因为权值可以被修改成一切实数,故我们完全可以把权值离散化掉。 于是我们现在可以设置一个 DP 状态 \(f[l,r,lim]\) 表示: 区间 \([l,r]\) 中的所有东西构成了一棵子树,且树中最小权值不小于 \( ......
[AGC030F] Permutation and Minimum 题解
Permutation and Minimum 看到 300 的数据范围,再加上计数题,很容易就往计数 DP 方向去想。 为方便,我们将 \(n\) 乘二。 因为是两个位置取 \(\min\),于是我们便想到从小往大把每个数填入序列。于是DP数组第一维的意义便出来了:当前已经填入了前 \(i\) 小 ......
洛谷P3607 [USACO17JAN] Subsequence Reversal P 题解
Subsequence Reversal P 思路: 发现,翻转一个子序列,就意味着两两互换子序列里面的东西。 于是我们就可以设 \(f[l][r][L][R]\) 表示: \(\max[1,l)=L,\min(r,n]=R\) 时的最长长度。 则边界为: \(L>R\) 时, \(f=-\inft ......