题解1829b cf

2022CCPC威海站 铜牌题解 A C D E G I J 补题

A //木桶效应 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 2e5 + 10; map<string, int> cham; pair<string, int> player[N ......
题解 铜牌 2022 CCPC

「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

JOISC2016 题解

仍然是没有做通信题。 JOISC2016 Day1 Matryoshka 俄罗斯套娃 转化错了,转化成上升子序列了,然后就变成了区间 LIS。 实际上是 LDS,那么就可以直接做了。 https://qoj.ac/submission/99648 JOISC2016 Day1 Memory2 神经衰 ......
题解 JOISC 2016

LG3783 题解

题意 传送门 给定一张有向图,每条边上有一个边权以及一个字符串。 一条有向路径的长度为这条路径上每条边的边权之和+按照路径的顺序将这些边上的字符串排成一列,相邻两个串的 $\text{lcp}$ 长度之和。 求 $1$ 号点到其他店的最短路。 用所有边上的字符串构造字典树,保证其大小 $\le 2\ ......
题解 3783 LG

cf-div3-867-E

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

DfC 专项训练题解1

A. Burglar and Matches - 900 题目大意 一个窃贼要去偷火柴,最多偷 $n$ 盒,店里有 $m$ 种火柴,每种火柴有 $a_i$ 盒, 每盒有 $b_i$ 根火柴,问最多能偷走多少根火柴, 解题思路 贪心签到题,按照每盒的火柴数排序,优先偷火柴多的盒即可。 AC Code ......
题解 专项 DfC

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

ABC267G Increasing K Times 题解

做这道题,很有感悟,发篇文。 先给数列从小到大排个序。 接下来设 $f_{i,j}$ 表示前 $i$ 个数的排列形成 $j$ 个上坡的方案数。 接下来考虑转移,分为插入第 $i$ 个数后增加上坡和不增加上坡两种情况。 对于不增加的情况,有三种可能: 第 $i$ 个数插入在了数列的最前端,有 $1$ ......
题解 Increasing Times 267G ABC

2021牛客OI赛前集训营-提高组(第二场)第三题 树数树题解

题目描述 牛牛有一棵 $n$ 个点的有根树,根为 $1$。 我们称一个长度为 $m$ 的序列 $a$ 是好的,当且仅当: $\forall i \in (1,m]$,$a_i$为 $a_{i−1}$的祖先或 $a_{i−1}$是 $ai$的祖先 $\forall 1 \leq i \lt j \le ......
题解 2021

2021牛客OI赛前集训营-提高组(第三场) 第二题 交替 题解与结论证明

题目描述 一个长度为 $n$ 的数组$A$,每秒都会变成一个长度为 $n − 1$ 新数组 $A'$,其变化规 则如下: 若当前数组 $A$ 的长度 $n$ 为偶数,则对于新数组 $A'$ 的每一个位置 $i(1 ≤ i < n)$来说,$A'[i]=A[i]+A[i+1]$ 若当前数组 $A$ 的 ......
题解 结论 2021

2022年9月8日模拟赛题解与总结

菜死了,被czn踩了8分暴力分 水分没水到/kk 整体第四,初二第一,竞赛班第二 主要是切了T4翻盘的 T1 祖先 ABC263B 一道简单的DP,随便做做跑路了 代码长这样 #include <stdio.h> int n, x, f[55]; int main() { scanf("%lld", ......
模拟赛 题解 2022

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

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

CF1821F - Timber

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

CF1479 Div1 VP记录

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

题解:【CTS2022】 独立集问题

题目链接 来自 2023SDPT-Round1-Day4 课上 Qingyu 的讲解。 考虑对于一个点多次操作会发生什么?第一次操作会将周围的点的权值吸过来,自己对答案的贡献乘 $-1$,周围的点的贡献乘 $+1$,得到新的权值 $a_x' = \pm a_x \mp \sum_{y \in son ......
题解 问题 2022 CTS

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

CF1699C

题面 前排提醒:这是本题最烂的做法,代码长达 91 行。 由于题里提到了 $\operatorname{MEX}$,所以考虑该怎么求 $\operatorname{MEX}$。 我们使用主席树。由于主席树难以直接处理下标为 $0$ 的情况,所以给数组中的每个值都加上一个偏移量 $1$,同时下文提到的 ......
1699C 1699 CF