subsequences greedy 1132g cf

CF Diary VI

4.30- 每 $10$ 题一篇 $\texttt{>o<}$ 。 . 题意 题解 代码 view code ......
Diary CF VI

CF1656F Parametric MST 题解

为了便于解题,先对 $a$ 数组从小到大进行排序。 首先,根据定义可以得出总价值的表达式: $$ \begin{aligned} W&=\sum\limits_{(u,v)\in E}[a_ua_v+t(a_u+a_v)]\ &=\sum\limits_{(u,v)\in E}a_ua_v+t\su ......
题解 Parametric 1656F 1656 MST

题解 CF1264D1

前言 数学符号约定: $\dbinom{n}{m}$:表示 $n$ 选 $m$ 。 如非特殊说明,将会按照上述约定书写符号。 题目分析: 考虑题目的问题弱一点的版本,假设此时我们的括号序列是确定的如何求其括号匹配的最深深度。 如果你有些许 dp 基础的话,不难想到如下做法: 考虑位置 $i$,将区间 ......
题解 1264D 1264 CF D1

题解 CF1264D2

前言 建议大家看一下我对于 D1 的题解(传送门)后再看本题解,本题解是基于那篇题解的基础上书写的。 数学符号约定 $\dbinom{n}{m}$:表示 $n$ 选 $m$ 。 如非特殊说明,将会按照上述约定书写符号。 题目分析 首先引用一下 D1 的答案:$\displaystyle\sum_{i ......
题解 1264D 1264 CF D2

cf-edu-142.D

题目链接:https://codeforces.com/problemset/problem/1792/D 算法:tire树求最长公共前缀(lcp)。 反思:题目转换出的题意已大致得到,但怎么具体求不会。 思路:tire树维护一个结构,1在哪些位置出现,2在哪些位置出现,以此类推。 代码: #inc ......
cf-edu 142 edu cf

[ABC299F] Square Subsequence

Problem StatementYou are given a string $S$ consisting of lowercase English letters. Print the number of non-empty strings $T$ that satisfy the follow ......
Subsequence Square 299F ABC 299

cf-div.2-868-D

题目链接:https://codeforces.com/contest/1823/problem/D 比赛的时候关键性质已经想到,但没想到怎么正确构造。 性质:每次新加一个字母,回文子串的数量最多增加1(因为题目需要不相同的回文子串)。 证明:可以用反证法,易证。 构造方法:由于k的值很小(只有20 ......
cf-div 868 div cf

CF1814E Chain Chips & CF750E New Year and Old Subsequence - 动态 dp -

一句话概括动态 dp:用来解决带修改/多次区间询问的 dp 问题。将转移写成矩阵的形式,然后利用线段树求解区间问题/单点修改 1814E 注意一条边要么选 2 要么选 0 次,而且第一条边一定是选了 2 次。如果有一条边没选,那么这条边两侧的边一定都选了。 设 $f_i$ 代表考虑到第 $i$ 条边 ......
Subsequence 动态 1814E Chain Chips

CF960F Pathwalks | 线段树优化DP

题目 设$dp[x,w]$为以结点$x$为结尾,且最后一条边边权为$w$的最长路径长度。 考虑根据顺序加边,对于边$(u,v)$,更新 $$ dp[v,w] = \max_{w' < w}{dp[u,w']} + 1 $$ 对于每个节点,建一棵线段树,维护$dp[x]$,这样每次更新$dp[v,w] ......
线段 Pathwalks 960F 960 CF

CF1699A The Third Three Number Problem

###题意简述 构造出一个三元组a,b,c使得(a ⊕ b)+(a ⊕ c)+(b ⊕ c) = n,若无解输出-1。 符号 ⊕ 的意思为异或 ###个人分析 首先要了解异或符号的性质: 1,x⊕0=x 2,x⊕x=x 根据异或符号的性质可以得到一下构造: a=b=0,c=n/2 c=0,a=b=n ......
Problem Number 1699A Third Three

「CF1188E」Problem from Red Panda

题目 点这里看题目。 给定一个长度为 $k$ 的非负整数序列 $a$。 你可以对于 $a$ 做如下操作任意次: 选定 $1\le j\le k$,满足除了 $a_j$ 外 $a$ 中其它数都为正。 而后,令 $a_j$ 加上 $k-1$,令除了 $a_j$ 外 $a$ 中其它数减去 $-1$。 (这 ......
Problem 1188E Panda 1188 from

cf-div3-867-E

题目链接:https://codeforces.com/contest/1822/problem/E 被hack了。 错误的地方:每次取两个最大的,然后直接消去,这里不对,比如:2,3,3。 正解:还是每次取两个最大的,但这两个最大的每次只消去1,因为总共的数量不会超过$1e5$,所以时间复杂度很低 ......
cf-div 867 div cf

CF1621A Stable Arrangement of Rooks

###题目简述: 一个n*n的棋盘上,放上k个车,使得一任意车向上下左右移动一格(这里的车可以上下左右移动任意步数)后不与其他车相撞(注:不能走出棋盘之外)。 ###个人分析: 从题目可知,在车上下左右移动一格后不会与其他车相撞,换句话说,两辆车之间至少相隔一行一列,放在对角线上是最优想法,若无解则 ......
Arrangement Stable 1621A Rooks 1621

CF1822G2 - Magic Triples

比较好的题目,别的不说,G1 对 G2 有着不错的启发性。 首先,因为 $b>0,a_k\le 10^9$,所以 $b$ 不可能超过 $\sqrt{a}$ 考虑对 $b$ 分类讨论,设置一个阈值 $B$,先处理 $b=1$ 的情况,其实就是取三个相同的数然后排列,可以比较简单的排序之后做到 $O(n ......
Triples 1822G Magic 1822 CF

CF1821F - Timber

$$逐渐变成自己最讨厌的样子$$ 首先考虑 $dp$,设 $dp_{i,j}$ 表示当前放了 $i$ 个树,目前不得不覆盖到的最右点为 $j$,每放一棵树,如果能往左就往左,否则往右倒。 $\text{GF}$ 首先考虑 $dp_{i,j}$ 的转移。 第一种,在 $[j+1,j+k]$ 放一个树, ......
Timber 1821F 1821 CF

【SD集训】20230425 T2 差(difference) 题解 CF1500F 【Cupboards Jumps】

大家可以猜猜看为什么有两个标题,因为这个因本文就不设密码了,被 He_ren 的原题创到了。 吐槽一下,He_ren 甚至出原题还用脚造数据,虽然数据确实比较难造。不过那两个 $O(n^2)$ 老哥好像都没最后将所有数调整成非负,遗憾 20。 有人场切 * 3500 却没过签到题,我不说是谁。 题目 ......
题解 difference Cupboards 20230425 1500F

CF1479 Div1 VP记录

战况: 别的不说,这个 B1 WA 3发是真的精髓。 A 略 B 我们设此时在第一队队尾的为 las0,在第二队队尾的为 las1,要放的数为 x。 先考虑 B1: 显然有:如果 las0 等于 x,放在第二队,如果 las1 等于 x,放在第一队。 考虑两边都不同的情况,我们想要这个 x 后面尽快 ......
1479 Div1 Div CF

CF1598G

讲真,有点谔谔。 首先考虑若 $a+b=x$ 那么 $|a|,|b|,|x|$ 满足什么样的关系。不妨设 $|a|\ge b$,不难发现 $|x|\ge |a|\ge |x|-1$。 那么分类讨论一下: $|a|=|x-1|$,则 $|b|=|x-1|$。 $|a|=|x|$,设 $\operato ......
1598G 1598 CF

CF1487E

题面 将 $a,b,c,d$ 分别用 $a_1,a_2,a_3,a_4$ 表示。 令与第 $i$ 类食物中的第 $j$ 个冲突的第 $i-1$ 类食物的集合为 $S_{i,j}$。 首先是是人都能看出来的 DP: 令 $f_{i,j}$ 为选择第 $i$ 类食物的第 $j$ 个时所需的最小费用,显然 ......
1487E 1487 CF

CF1227D2

题面 如果我们将 $a$ 数组从大到小排序,那么显然的,前 $k$ 个数就对应着长度为 $k$ 的元素和最大的子序列中各元素的值。 由于要求字典序最小,所以我们将 $a$ 数组中的元素下标进行排序,在排序时以对应的元素值为第一关键字,以元素下标为第二关键字(排序后对应的元素值从大到小,大小相等的元素 ......
1227D 1227 CF D2

CF237C

题面 ~~我来水题解啦!!~~ 首先这题和素数有关,我们就先需要一个线性筛: int prm[1000005],tot; bool vis[1000005]; void init(){ vis[1]=vis[0]=1; for(int i=2;i<=b;i++){ if(!vis[i])prm[++ ......
237C 237 CF

CF587F

题面 设 $f(s,t)$ 表示串 $s$ 在 $t$ 中出现的次数。 首先把询问 $\sum\limits_{i=l}^rf(s_i,s_k)$ 拆成 $\sum\limits_{i=1}^rf(s_i,s_k)-\sum\limits_{i=1}^{l-1}f(s_i,s_k)$,然后考虑如何算 ......
587F 587 CF

CF721B

题面 这题这么水怎么还是蓝啊(恼 ~~即使这么水我还是脑子抽风交了好几遍~~ 其实很简单: 不妨设正确密码长度为 $len$ ,根据题意,在试到正确密码前都要先把长度小于 $len$ 的密码全部试一遍,则最优情况就是试长度为 $len$ 的密码时一遍试对,最劣情况就是把长度为 $len$ 的所有密码 ......
721B 721 CF

CF939E

题意: 维护一个可重集 $S$,支持以下两种操作: 插入一个数,保证插入的数不降。 找出 $S$ 的一个子集 $s$,使 $\max(s) - \operatorname{mean}(s)$ 最大,输出这个最大值。其中 $\max(s)$ 表示 $s$ 中元素的最大值,$\operatorname{ ......
939E 939 CF

CF1579A

题面 $Update 2021.10.8:$使用了$\LaTeX$ 分析题意: 字符串 $S$ 中只有 $A$ $B$ $C$ 三种字符 删除 $A$ 时必须同时删除 $B$ 删除 $C$ 时也必须同时删除 $B$ 因此,删除 $A$ 和 $C$ 的总个数就等于删除 $B$ 的个数 解法: 想要让字 ......
1579A 1579 CF

CF1634A

题面 简单分析容易发现,若 $s=rev(s)$,则无论 $rev(s)$ 放在前面还是后面,生成的新串都相同,只有一种情况。 相反,如果 $s\neq rev(s)$,则一次操作后可以出现两种情况。而无论是哪种情况,生成的新串都是回文串,即 $s'=rev(s')$,根据乘法原理,后面的情况数都是 ......
1634A 1634 CF

CF1638A

考虑这样一种贪心策略: 按序号遍历 $a$,如果 $a_i=i$ 则继续,否则暴力向下找到一个 $a_j=i$,暴力翻转区间 $[i,j]$,然后退出。 正确性证明: 当遍历到 $a_i$ 时,$a_1$ 到 $a_{i-1}$ 一定已经是不需要翻转就已经字典序最小,因为如果不是的话程序在这之前就已 ......
1638A 1638 CF

CF1638C

蒟蒻有一种用 set 的乱搞(?)做法。 将题目中的连边要求反着说一遍:$i>j$ 且 $a_i<a_j$。 考虑遍历 $a$ 时,遍历到的 $a_i$ 编号一定要比它前面的大,只需要将前面比它大的元素都和它连起来。 将每个连通块看作一个整体,只要 $a_i$ 比其中任意一个小,$a_i$ 就可以加 ......
1638C 1638 CF

CF1654C

题意 有一些蛋糕,最开始只有一块。每次可以选择质量为 $x(x\ge2)$ 的一块,将其切成 $\left\lfloor\frac x2\right\rfloor$ 和 $\left\lceil\frac x2\right\rceil$ 两块。现在给定切 $n-1$ 次后的结果,判断能否通过最开始的 ......
1654C 1654 CF

CF1698D

题面 观察题面:$n\le10^4$,询问次数 $\le15$,因此考虑二分。 用 $x$ 表示没有被交换过的那个元素。 考虑当询问区间 $[l,r]$ 时,得到的序列满足什么条件,才能确定 $x$ 在这个区间内。 考虑一个在交换前的序列的 $[l,r]$ 区间内的元素 $y$,由题意 $a_y=y ......
1698D 1698 CF