tripartite complete 1228d cf

CF1887B Time Travel

早到可以选择停留在原地,所以我们一定会尽早地到达每一个节点,这样一定不劣。 考虑若我们最早可以在 \(t_u\) 时刻到达节点 \(u\),则对于边 \((u,v)\),我们一定会在它最早的解锁时刻由 \(u\) 向 \(v\) 扩展。实现时可以使用 dijkstra,并对每张图的出现时刻用 set ......
Travel 1887B 1887 Time CF

CF1777B题解

分析 首先计算单个排列中的逆序对数量。 我们发现这东西可以分为两类,一类是两个数在原排列和倒着的排列(这里称为“反排列”),另一类是两个数一个在原排列,一个在反排列的。 对于第一类,我们发现,原排列中的顺序对是反排列中的逆序对,所以原排列的所有数对要么在原排列中是逆序对,要么在反排列中是逆序对,所以 ......
题解 1777B 1777 CF

CF1777A题解

分析 发现操作2不会改变数的奇偶性,故无视。 那么操作就是单纯删一个数。 对于一个连续出现 \(x\) 个奇偶性相同的数的序列,需要删 \(x - 1\) 个数(因为只剩下一个数就不会和相邻的数奇偶性相同了)。 觉得找序列太麻烦,观察到连续出现 \(x\) 个奇偶性相同的数的序列有 \(x - 1\ ......
题解 1777A 1777 CF

CF1523D Love-Hate 题解

抽象化题意: 一共有 \(m\) 个元素,给定 \(n\) 个集合,每个集合的元素不超过 \(15\) 个,求出一个元素个数最多的集合 \(S\) 是至少 \(\lceil \dfrac{n}{2} \rceil\) 个集合的子集。 其中$ p $ $ (1 \le n \le 2 \cdot 10 ......
题解 Love-Hate 1523D 1523 Love

Educational Codeforces Round 127(CF1671 D~E) 题解

D. Insert a Progression 题目链接 可以瞪出来的一个结论就是当我们在位置 \(p\) 插入了一个数 \(x\) 时,如果存在一对 \(l,r\) 满足 \(l<p\),\(r>p\) 且 \(x\in[a_l,a_r]\),那么我们插入的这个 \(x\) 就不会对序列的答案产生 ......
题解 Educational Codeforces Round 1671

CF466E

题目传送门 这个人只会做这种水题了。。。 Solution 直接做显然不太好做,考虑把询问离线下来在静态森林中查询。 对于操作 1,直接连边就可以了。 对于操作 2,容易发现能看到这个文件的一定是一条从祖先到子节点的一条链,记录这个文件被看到的链顶和链底即可。 对于操作 3,只需要知道 \(x\) ......
466E 466 CF

CF1710 题解

CF1710 题解 A 看图写话。 想象一个格子以及周围同色格的颜色必须呈一个三叉的形状: # # # ## ## ### ### # # # 这些三叉拼起来最小的形状,就是两个以上的整行,或整列。所以遍历每一种颜色,通过整除观察它最多能填几列,如果 \(1\) 列就不能放,如果奇数列就要看是否一个 ......
题解 1710 CF

CF1887C Minimum Array

CF1887C Minimum Array 小丑做法。 首先差分一下,转化成两次单点加。每次考虑前 \(i\) 位,然后一直维护当前合法的时刻区间,这个东西怎么做呢?可以离线下来记录每个点被那些操作波及,然后算一遍前缀和,对于合法的区间区间打标记。需要支持区间加 \(1\) 和查询最大值,用线段树维 ......
Minimum 1887C Array 1887 CF

【题解】CF1710 合集

CF1710A Color the Picture 标签:思维题 \(C^-\) 典型的有图有真相,嘻嘻(抽风了? 显然有一个结论,我们颜色要么一行一行天,要么一列一列填。 并且填进去的颜色必须不少于两行/列 然后就是记一个 ans 和 一个 over 表示如果每个颜色都两行/列填进去能填的最多列数 ......
题解 1710 CF

CF16A

CF16A Flag \[\large \text{Seek the truth from facts.} \]\[\large \text{实事求是} \] \[\mathtt{\text{2023.10.23 星期一}} \]\[\text{Program Difficulty = }\colo ......
16A CF 16

CF5A

CF5A Chat Server's Outgoing Traffic \[\large \text{Seek the truth from facts.} \]\[\large \text{实事求是} \] \[\mathtt{\text{2023.10.22 星期六}} \]\[\text{Pr ......
CF5A CF5 CF 5A

Educational Codeforces Round 144(CF1796 D~E) 题解

D. Maximum Subarray 题目链接 十分钟秒了一道 *2000,非常爽,但是个人感觉确实非常简单。 下面令 \(b_i=a_{i}-x\),\(b_i'=a_i+x\) 。 因为 \(k<=20\),因此考虑一个复杂度与 \(k\) 相关的做法。 不妨 dp:设 \(f_{i,j,0/ ......
题解 Educational Codeforces Round 1796

CF1893E题解

分析 第一眼:博弈论。 第二眼:呃……贪心? 实际:DP。 首先想这个游戏大抵存在必胜策略,否则不会让我们求。 思考先手必胜条件,就是如何让这个数组最后只剩下一个数。 设数列之和为\(sum\)。 发现每次操作给两个数减的数字是一样的。那么对于每次操作,\(\Delta sum\)都为两者之间更少的 ......
题解 1893E 1893 CF

CF1223F Stack Exterminable Arrays

CSP-S2023 T2原题在此!!!! 题意: 给一个序列进行栈操作,从左到右入栈,若当前入栈元素等于栈顶元素则栈顶元素出栈,否则当前元素入栈。若进行完操作后栈为空,这说这个序列是可以被消除的。 给你一个长度为\(n\)的序列\(a\),问\(a\)有多少子串是可以被消除的。 数据范围: \(1\ ......
Exterminable Arrays 1223F Stack 1223

CF1774

CF1774 A. Add Plus Minus Sign 看起来就很呆的A。 Statement 给你一个 01 序列,让你添加加减号,使得答案绝对值最小。 Solution 遇到一个 1你就加,再遇到你就减。总能把结果维持在 0 或 1。 Code B. Coloring 看起来很困难的 B。事 ......
1774 CF

CF1839D题解

分析 啊这道题就做得很难受了…… 手玩一下样例,不难发现答案就是分出\(k\)段不是单调上升序列的序列,求这些序列的最小长度和。 显然有状态\(f_{l,r,k}\)表示\([l,r]\)序列分成\(k\)段的最小长度和。 转移很好想,即枚举\(x\),\(y\)分别表示左区间的右端点以及段数,空间 ......
题解 1839D 1839 CF

#结论#CF1776G Another Wine Tasting Event

题目 给定一个长度为 \(2n-1\) 的字符串,问一组使得 \(n\) 个长度不小于 \(n\) 的区间中字母W的个数相等的字母W的个数 分析 首先结论就是 \(\max_{i=1}^n\{cW[i\dots i+n-1]\}\) 一定是合法解 以这组解为基准,左右端点如果向外扩展那么个数一定会更 ......
结论 Another Tasting Event 1776

CF1479B1 Painting the Array I

如果两种方案末尾两数有一数相同,那么答案较大的方案不劣于答案较小的方案。答案较大的方案只需\textbf{模仿}答案较小的方案即可,在状态变成相同之前答案最多只会少 \(1\)。 所以只需要考虑末尾两数 \(a,b\) 与新进来的数 \(c\) 各不相同时该替换哪个。 假设 \(a\) 下次出现的位 ......
Painting 1479B Array 1479 the

题解:【CF1888E】 Time Travel

题目链接 刚从 modinte 那里学到的广义 dijkstra。注意到一定不会有路径形如 \(x \to y \to x\),这样等价于 \(x\) 在原地等上两个时刻,我们记 \(d_i\) 表示到达 \(i\) 节点需要的最少时间。建图,边权为当前这一条边在哪一个历史时刻。然后用一个 set ......
题解 Travel 1888E 1888 Time

CF1883F You Are So Beautiful

思路 最开始都错题了,以为是不能通过另一种子串的选择方法得到这个子串就算做独特字串,实际上,是需要不能通过选择子序列的方式得到这个子串才满足条件,导致赛时没做出来(悲)。 实际上,如果一个子串满足条件,那么一个必要条件就是子串左侧没有与该子串左端一样的数字并且子串右侧也没有与该子串右端一样的数字。 ......
Beautiful 1883F 1883 Are You

CF1883G1 Dances (Easy version)

思路 考虑从大到小给每一个 \(b_i\) 匹配一个 \(a_j\),那么如果对于 \(b_i\),\(a_j\) 不能匹配,那么对于后续更小的 \(b_i\),\(a_j\) 同样无法匹配,所以可以直接忽略,跳到下一个,一直匹配,直到无法匹配为止,那么无法匹配的 \(b_i\) 的数量就是需要的操 ......
version Dances 1883G 1883 Easy

CF1883G2 Dances (Hard Version)

思路 大体上的思路应该和简单版本一致,建议先看本人关于简单版本的题解。 与简单版本不同的是,困难版本的 \(m\) 可以不为 \(1\),而是取遍 \([1,m]\) 中的整数,所以答案的总值会变大很多倍。 如果直接枚举 \(m\) 次,时间复杂度将会达到 \(O(mn\log n)\) 显然过不了 ......
Version Dances 1883G 1883 Hard

CF1883B Chemistry

思路 性质题,因为可以随便排序,所以只需要考虑数量满不满足条件即可。 一个回文串,应该满足所有的字符的数量都是偶数或者其中一个字符的数量是奇数。 所以可以直接扫一遍字符串,统计每个字符的数量,然后再统计数量是奇数的个数,如果这个个数大于 \(k+1\) 就无解,否则有解。 AC code #incl ......
Chemistry 1883B 1883 CF

CF1883C Raspberries

思路 最开始晃眼一看,感觉很难,仔细一读题,哦,原来 \(k\in [2,5]\) 啊。 首先如果 \(k\) 是质数,也就是 \(k\) 不等于 \(4\) 的情况,必须要有一个数是 \(k\) 的倍数,那么计算每个数需要的操作数,取最小即可。 如果 \(k\) 不是质数,也就是 \(k\) 等于 ......
Raspberries 1883C 1883 CF

CF1884C Medium Design

思路 Step1. 贪心 拿到题后,第一时间想到贪心,如果这个区间加上会使答案变小或不变就不加。 但是很显然,这个贪心是错误的。 如果答案的最大值在区间 B,但是先加了区间 A,导致加区间 B 使答案不变,那么这样就会使答案变劣。 所以贪心是错误的。 Step2. 枚举 接着,想到了可以枚举最小值, ......
Medium Design 1884C 1884 CF

CF1839C题解

分析 首先对于最后一个元素为1的数组,显然不存在合法构造方式。为什么?因为每个1都需要至少一个数插入在它后面对它完成翻转,如果最后一个数为1,这时没有数在它后面翻转它,所以这时无法构造。 然后我们很naive地想让每个1都只被翻转一次,那么很好想到,对于一个形如\(11\dots100\dots0\ ......
题解 1839C 1839 CF

CF1839B

分析 根据题意,对于亮度为\(a\)的灯,我们最多可以一次开\(a\)盏。 显然我们选\(b\)最大的\(a\)盏灯就行,注意到\(b\)最大为\(1e9\),所以开long long。 代码 #include <iostream> #include <vector> #include <algor ......
1839B 1839 CF

CF1839A题解

分析 可以很容易地想到如果只有1要求的话答案就是 \(\lceil \frac{n}{k} \rceil\)。 最优策略显然是在每个整除分块的第一位放一个1。 思考加入2条件如何修改。 显然当最后一块的大小不为1时,大于1的部分后缀和为0。 所以需要在最后一位加入一个1。 所以答案为\(\begin ......
题解 1839A 1839 CF

CF981E Addition on Segments

将操作按右端点从小到大排序,这样对于当前值相同的点,只有最右边的那一个是有用的。 令 \(f_i\) 表示当前值为 \(i\) 最靠右的点的位置,转移直接暴力判断能否取 \(\max\) 即可,时间复杂度 \(O(nq)\)。 这个东西看起来就不好优化。 不妨调换状态和值,令 \(f_{i,j}\) ......
Addition Segments 981E 981 CF

Codeforces Round 905 Div 1 (CF1887)

A1. Dances (Easy version) 把 \(a,b\) 序列都从小到大排序,\(a\) 贪心删大的,\(b\) 贪心删小的,二分答案并 \(O(n)\) \(\text{check}\)。 Code ```cpp const int N=1e5+5; int T,n,m; int a ......
Codeforces Round 1887 905 Div