cf-div 868 div 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

CF229E 题解

前言 基本是官方题解的思路。 分析 先考虑不用纠结的情况。假设第 \(n+1\) 大价值的物品的价值小于第 \(n\) 大的。 此时物品名称集合可以确定。 对于每类名称,恰好拿到的概率为 \(1/\dbinom{k_i}{a_i}\),\(a_i\) 为选择的物品数量,\(k_i\) 为总数。 对于 ......
题解 229E 229 CF

题解 CF1876E - Ball-Stackable

输在 D 上了,呜呜呜。 首先显然环是没有用的,因此我们只用考虑简单路径。 先思考一个弱化版:如果所有边都已经定向了怎么做。对于每条路径 \(u\to v\),如果它是一个括号序列,那么我们就用并查集将这条路径上第一条边和最后一条边合并起来,那么颜色数就是并查集连通块数。考虑如何快速合并这个连通性。 ......
题解 Ball-Stackable Stackable 1876E 1876

CF1886D Monocarp and the Set

Link 此题目可以从两个方向考虑,正着和倒着,倒着考虑比较容易,首先把所有的数放到一块,如果是'<'或者'>',就是去掉最左边或者最右边的数,这样显然只有一种可能,答案不变。 如果是'?',那么显然可以去掉中间的任意一个,所以答案就是\(\times l-2\),那么对于\(s_n-i\)位置的\ ......
Monocarp 1886D 1886 and Set

Codeforces Round 887 (Div. 2)

Codeforces Round 887 (Div. 2) A. Desorting 解题思路: 每次操作能使相邻数之差减\(2\),设最小相邻数之差为\(mind\),答案为\(ans = (mind + 1) / 2\)。 代码: #include <bits/stdc++.h> using n ......
Codeforces Round 887 Div

Codeforces Round 855 (Div. 3) C. Powering the Hero

有 \(n\) 张卡的卡堆,你可以自顶向下抽卡。装备卡显示数值为 \(a_i(a_i>0)\) ,英雄卡显示数值为 \(a_i = 0\) 。 如果是装备卡,你可以将卡抽出放在装备堆。如果是英雄卡,你可以将装备堆顶端的一张数值为 \(x\) 的装备卡装备给英雄,英雄数值 \(+ x\) 。无论是否装 ......
Codeforces Powering Round Hero 855

Codeforces Round 857 (Div. 2) B. Settlement of Guinea Pigs

你非常喜欢豚鼠。每个笼子可以住两只豚鼠,且你不想把每个笼子放入不同性别的豚鼠。豚鼠只有两种性别。假设你买到豚鼠时并不知道性别,只有医生能够分辨。 接下来的 \(n\) 天方案中,若第 \(i\) 天为 \(1\) ,你买入一只豚鼠;若为 \(2\) ,你请医生分辨你的豚鼠性别。 给出方案,你最少需要 ......
Codeforces Settlement Guinea Round Pigs

Nebius Welcome Round (Div. 1 + Div. 2) B. Vaccination

你管理一个疫苗接种站,将会有 \(n\) 个人前来接种疫苗。第 \(i\) 个到来的人时间为 \(t_i\) ,已知每个人的等待时间不会超过 \(w\) 分钟。 疫苗存放在特质冰箱中,一袋疫苗有 \(k\) 支,当一袋疫苗在 \(x\) 时刻打开时,它的有效时间为 \(d\) 。 现在询问最少需要打 ......
Vaccination Div Welcome Nebius Round

Educational Codeforces Round 145 (Rated for Div. 2) B. Points on Plane

给一个二维平面,你需要在上面放 \(n\) 个芯片。将一个芯片放在 \((x, y)\) 的代价为 \(|x| + |y|\) 。放 \(n\) 个代价的代价为,所有芯片中耗费的最大代价。并且你需要保证任意两个芯片之间的距离严格 \(> 1\) 。 现在给出 \(n\) 给芯片,询问放 \(n\) ......
Educational Codeforces Points Round Rated

Codeforces Round 875 (Div. 2) C. Copil Copac Draws Trees( DFS )

Codeforces Round 875 (Div. 2) C. Copil Copac Draws Trees 思路: 在输入树的边的同时记录他们的输入顺序 从 1 开始跑 DFS ,遇到未连上的边时 , 有两种情况(用 q 表示当前点的顺序序号) 1.边的顺序在这个点连上之前,那么 DFS 的 ......
Codeforces Round Copil Copac Draws

Educational Codeforces Round 149 (Rated for Div. 2)

这场D被切穿了。 A题 答案为 x 或者 x-1 1 B题 答案就是最长的连续一段的长度+1 证明的话大概可以将它看成是几段连续上升和下降的段,然后在峰谷、峰顶分别填上最小、最大,剩下的就依次递增或递减就行。 C题 将一段连续的0/1视作一个块,那么我们最小化这个块的数量就行。 D题如果猜到如果有解 ......
Educational Codeforces Round Rated 149

[CF444E] DZY Loves Planting

DZY Loves Planting 逆天题。 想到二分,判断用网络流,但是好像 n 有点大。 我们想尽量让每个点的 g 能大于下界,所以我们尽量往大的边走,其实就是尽量不走小的边。 所以考虑将边从小到大排序,每次合并两端的连通块,如果剩下点的 x 总和小于总点数就只能内部消化。 又因为这已经是最劣 ......
Planting Loves 444E 444 DZY

Codeforces Round 863 (Div. 3) B. Conveyor Belts

给一个 \(n \times n\) 的矩阵, \(n\) 是偶数。将矩阵按圈分割,同一圈的位置可以不消耗代价移动,可以消耗一个代价移动到相邻圈。 给出 \(n, x_1, y_1, x_2, y_2\) ,询问 \((x_1, y_1)\) 移动到 \((x_2, y_2)\) 的代价最小是多少。 ......
Codeforces Conveyor Belts Round 863

Codeforces Round 865 (Div. 2) B. Grid Reconstruction

给一个 \(2 \times n\) 的网格,且 \(n\) 是偶数。你需要将 \(1 \sim 2 \times n\) 填入这个网格。 一条路径是从 \((1, 1)\) 开始,每次只能向右或向下,到 \((2, n)\) 结束时,所经过的位置。按经过点的顺序标号,一两条路径的代价是 \(cos ......
Reconstruction Codeforces Round Grid 865

Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)

\(D. Effects of Anti Pimples\) 对每个数字能到达的所有位置先预处理最大值,那么就代表选择这个数字之后真实的贡献,那么对这样的预处理值,最小值显然只有一种做法,为 \(2^0\) ,第二小的值应该可以与最小值一起选择,所以答案为 \(2^1\) ,以此类推之后,每个值乘上 ......
Round Codeforces COMPFEST Final based

CF1634F

知识点:差分 Link:https://codeforces.com/contest/1634/problem/F 差分的本质是递推。 简述 给定两长度为 \(n\) 的数列 \(a, b\),模数 \(p\),要求进行 \(q\) 次操作,每次操作为 c l r 的形式,表示将数列 \(c\) 的 ......
1634F 1634 CF

CF1100E Andrew and Taxi

套路题又来咯,最大值最小先直接上个二分答案\(lim\) 对于图中的边,若它的权值\(>lim\)的话这条边的方向就确定了,那么直接把这些边连出来跑个拓扑排序看看有没有环即可 如果有环则当前答案一定不合法,否则我们总存在如下的构造方法: 先把权值\(>lim\)的边得到的图的拓扑序搞出来,对于所有权 ......
Andrew 1100E 1100 Taxi and

CF1003E Tree Constructing

很trivial的构造题 首先上来判掉一些显然无解的情况,然后考虑既然最后直径长为\(d\)那么不妨先搞一条长度为\(d\)的链来 考虑在链上接一些点使得直径不会变长,对于链上的某个点,它最多能接上的链的长度就是它到两个端点距离的最小值 不妨设计递归函数求解,设solve(x,dis,lim)表示在 ......
Constructing 1003E 1003 Tree CF

CF1437F

好神奇的 dp 题。 description 给定数组 \(a\),求其有多少个排列满足 \(y_i=\max(a_1,a_2,\dots,a_{i-1})\) \(\forall i\in [1,n]\cap\mathbb{Z},2a_i\leq y_i ~\texttt{OR}~ 2y_i\le ......
1437F 1437 CF

Codeforces Round 872 (Div. 2) B. LuoTianyi and the Table

给一个 \(n \times m\) 的矩阵和 \(n \times m\) 个数,你需要把这些数填入矩阵。保证 \[\sum_{i=1}^n \sum_{j=1}^m \left ( \mathop{max}\limits_{1 \leq x \leq i, 1 \leq y \leq j} a_ ......
Codeforces LuoTianyi Round Table 872

Codeforces Round 871 (Div. 4) D. Gold Rush

给一个堆 \(n\) 个石子,如果可以分裂为整数,它将分裂为 \(\frac{1}{3} n\) 和 \(\frac{2}{3} n\) 的两堆石子。并且新石堆会继续分裂。 询问过程中是否出现过大小为 \(m\) 的石堆。 显然记忆化 \(dfs\) 即可。 记忆数组一般开全局。容易观察到值域很大, ......
Codeforces Round Gold Rush 871

Codeforces Round 875 (Div. 2) B. Array merging

给定两个长为 \(n\) 的数组 \(a\) 和 \(b\) 。你需要将 \(a\) \(b\) 归并成一个数组 \(c\) 。询问所有归并方法中,连续数相同的子段最长为多少。\(1 \leq a_i, b_i \leq 2n\) 。 显然归并在 \(a\) 可以任选一段 \([l_1, r_1]\ ......
Codeforces merging Array Round 875

Codeforces Round 879 (Div. 2) B. Maximum Strength

定义正整数 \(C = \overline{c_1c_2 \cdots c_k} = c_1 \cdot 10^{k-1} + c_2 \cdot 10^{k - 2} + \cdots + c_1\) 。 假设有两个正整数 \(X = \overline{x_1x_2 \cdots x_n}, Y ......
Codeforces Strength Maximum Round 879

CF367C Sereja and the Arrangement of Numbers

这题首先上来会发现题目中的很多信息都是假的,核心就是问要构造一个\(x\)个点的完全图至少要多长的序列 我们把序列中相邻的两个元素看作图上的一条边,则可以把问题转化为:给一个\(x\)个点的完全图,问至少要走多长的路径才可以遍历图中的所有边至少一次 简单讨论下会发现当\(x\)为奇数时,此时图中每个 ......
Arrangement Numbers Sereja 367C 367

CF723F st-Spanning Tree

小清新贪心+分类讨论,因为边的数组开小了WA了好久…… 首先我们贪心地选出不包含\(s,t\)的边,用这些边尽量地将除了\(s,t\)外的\(n-2\)个点连通 接下来考虑每个连通块,由于题目保证图初始连通,因此只有三种情况,即要么其中仅有和\(s\)相连的边;仅有和\(t\)相连的边;或者同时有向 ......
st-Spanning Spanning 723F Tree 723

CF260D Black and White Tree

刚开始想复杂了,后面再细想了下发现是个傻逼题 考虑一下构造策略,每次从两种颜色集合中分别取出一个数\(u,v\),考虑连边\(u\leftrightarrow v\),边权为\(\min(s_u,s_v)\) 并在每次操作后将\(s_u,s_v\)中较小的那个直接删掉,并把较大的那个值减去\(\mi ......
Black White 260D Tree 260

CF821D Okabe and City

也是一个很经典的优化最短路的题,感觉在暑假前集训做过类似思想的题来着 首先发现我们可以把所有有路灯的点以及终点看作关键点,很显然我们只关心关键点之间的边权以及最短路 不难发现对于两个关键点\(i,j\),如果\(i,j\)相邻,则它们之间有边权为\(0\)的边;否则若\(|x_i-x_j|\le 2 ......
Okabe 821D City 821 and

CF612E Square Root of Permutation

挺有意思的一个构造题,不过这种排列置换相关的套路感觉都太明显了 首先考虑把原图的每个置换环求出来,稍作观察会发现所有长度为奇数的置换环都可以很容易地构造出对应的\(q\)数组 但长度为偶数的置换环就不能单独构造了,但我们发现可以把两个长度相同且为偶数的置换环交错着合并来得到一个合法的\(q\)数组 ......
Permutation Square 612E Root 612

Educational Codeforces Round 149 (Rated for Div. 2) C. Best Binary String

给一个字符串 \(s\) 包含 \(0, 1, ?\) 。 定义一个 \(01\) 串 \(s\) 的 \(cost\) 为:选择 \(s\) 的任意一个子段 \([l, r]\) 并 \(reverse\) 。将 \(s\) 变为一个非降序序列时的 \(reverse\) 最小次数即 \(cost ......
Educational Codeforces Binary String Round