multiplication sorting 1861d cf

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

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

[LeetCode] 147. Insertion Sort List_Middle tag: Linked List

Given the head of a singly linked list, sort the list using insertion sort, and return the sorted list's head. The steps of the insertion sort algorit ......
List List_Middle Insertion LeetCode Linked

[LeetCode] 1356. Sort Integers by The Number of 1 Bits 根据数字二进制下1 的数目排序

You are given an integer array arr. Sort the integers in the array in ascending order by the number of 1's in their binary representation and in case ......
二进制 数目 LeetCode Integers 数字

Data structure - Sort & quick sort 小结及leetcode相关题目

Sort 主要有以下几种常见的sort, 面试中最有可能考的是quick sort, 关于k largest or 什么相关的。 Bubble sort Insertion sort Merge sort Quicksort Selection sort Counting sort Bucket s ......
小结 structure leetcode 题目 quick

[CF444E] DZY Loves Planting

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

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

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

CF1137F Matches Are Not a Child's Play

哈人*3400,是不是贺过了个 1F (? 单点编号 \(\to max + 1\),动态维护 prufer 序列删除了哪些点。 看似不可做,但是不难发现我们一个点被更改其他点的相对次序不会改变,反而 \(x \to max\) 这条链的删除次序到了最后面。 然后我们以权值最大点为根,不难发现每次只 ......
Matches 1137F Child 1137 Play