![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
文章平均质量分 85
_ducati
这个作者很懒,什么都没留下…
展开
-
「BalticOI 2022 Day1」Uplifting Excursion 物品 题解
感谢 此神仙 在这题上对我的帮助,这里表达对祂衷心的膜拜。传送门妙妙题。注意到所有物品的重量总和不超过 101000010100001010000,于是就是个裸的多重背包。使用单调队列优化的复杂度为 O(N4)O(N^4)O(N4),常数较大;使用二进制分组优化的复杂度为 O(N4logN)O(N^4 \log N)O(N4logN),常数较小且好写。具体两个能拿多少分没试过。首先思考一个简化版的问题:总重量不需恰好为 mmm,只需不超过 mmm。不难发现,此时我们可以直接贪心。具体来说,我们预先选上所有原创 2022-06-07 18:47:59 · 501 阅读 · 1 评论 -
[USACO21FEB] Minimizing Edges P 题解
优秀的贪心题。原创 2022-06-06 17:12:30 · 118 阅读 · 0 评论 -
【省选联考 2022 D2T2】序列变换 题解
文章目录DescriptionSolutionPart 1: 抽象为树上问题与初步解决Part 2: x=0,y=1Part 3: x=1,y=1Part 4: x=1,y=0Description传送门SolutionPart 1: 抽象为树上问题与初步解决首先,我们对括号序列建出一棵树。接着,我们尝试将两种操作转化为树上的操作。定义位置 iii 的匹配点 pip_ipi 为与第 iii 个括号匹配的括号的位置,则考虑每一个满足 si=s_i=si=( 对应的 [i,pi][i,p_i]原创 2022-04-22 19:47:18 · 682 阅读 · 0 评论 -
ARC 129 C Multiple of 7 题解
Description给定整正数 nnn。构造一个长度不超过 10610^6106 的字符串,使得其中满足 ⌈\lceil⌈ 从左到右依次拼接起来,得到的十进制数是 777 的倍数 ⌋\rfloor⌋ 的区间 [l,r][l,r][l,r] 恰有 nnn 个。n≤106n \le 10^6n≤106Solution自闭了,构造题杀我!首先,考虑对于一个固定的数字串 SSS,其中有多少合法的子串 [l,r][l,r][l,r]。考虑使用前缀和维护。令 aia_iai 表示,[i,∣S∣][i,原创 2021-11-22 21:49:10 · 859 阅读 · 1 评论 -
Codeforces Round #754 (Div. 2) 部分题解
文章目录前言SolutionsABCDObservation 1Observation 2SolutionEFCode前言神迹: 模拟赛切掉 A,C,E,但不会 B,D,F。真就涉及到一丢丢构造和贪心就不会做呗,我是真的菜。SolutionsA不难发现,每次操作可以将 a1+a3−2a2a_1+a_3-2a_2a1+a3−2a2 减小或增大 333。若令 ppp 为初始时的 a1+a3−2a2a_1+a_3-2a_2a1+a3−2a2,那么:若 p≡0(mod3)p \equi原创 2021-11-13 22:27:53 · 462 阅读 · 0 评论 -
Codeforces Round #752 (Div. 1) 部分题解
前言A令 bib_ibi 表示,有多少个 j(j≤i)j(j \le i)j(j≤i) 不后于 iii 被删除。那么答案为 NO 当且仅当: 对于每个合法的 bbb,均存在一个 i∈[1,n]i \in [1,n]i∈[1,n] 使得 (bi+1)∣ai(b_i+1)|a_i(bi+1)∣ai。不难发现 bbb 与 n!n!n! 种删数方案构成了双射关系,因此整数序列 bbb 合法当且仅当 ∀i∈[1,n]\forall i \in [1,n]∀i∈[1,n] 满足 1≤bi≤i1 \le原创 2021-10-31 14:36:32 · 357 阅读 · 0 评论 -
ARC 124 D Yet Another Sorting Problem 题解
Description给定一个长度为 N+MN+MN+M 的排列。你每次可以选择前 NNN 个数中的一个以及后 MMM 个数中的一个并将它们交换。你需要求出,至少需要多少次交换操作才能使得排列变为 1,2,3,⋯ ,N+M1,2,3,\cdots,N+M1,2,3,⋯,N+M。Solution下面,为方便叙述,令位置不超过 NNN 为左边,否则为右边。假设我们可以交换同属一边的数,那么这就成为了一道裸题: 从 iii 向 pip_ipi 连边,得到了一张每个点的入度以及出度均为 111 的图。原创 2021-07-29 07:39:50 · 502 阅读 · 1 评论 -
ARC 121 D 题解
Description传送门SolutionLemma 1若我们将 aaa 从小到大排序,那么答案的上界为∑i=n+12nai−∑i=1nai\sum_{i=n+1}^{2n}a_i-\sum_{i=1}^n a_ii=n+1∑2nai−i=1∑nai考虑构造一个能达到上界的算法。令 fif_ifi 表示,在排序后 iii 是否在前一半。我们将原序列从左往右扫描,用栈实时维护未匹配的左括号,并记录下每个左括号来源于哪个位置。令当前扫描到了 iii。若栈未空,填上 ( 并加入栈原创 2021-05-30 19:49:27 · 148 阅读 · 0 评论 -
Educational Codeforces Round 99 (Rated for Div. 2)
SolutionA可以发现,f(f(x))f(f(x))f(f(x))也就相当于把xxx末尾的所有000给去掉得到的数,即xf(f(x))\frac x {f(f(x))}f(f(x))x为xxx在十进制意义下的lowbitlowbitlowbit。所以,答案就是nnn的位数,即读入的字符串的长度。B考虑一共进行了kkk秒,由1,2……k1,2……k1,2……k中的一些数变成−1-1−1组成nnn。可以发现,从一个数ppp变成−1-1−1相当于减去了p+1p+1p+1。首先,我们通过二分求出最原创 2020-12-02 08:43:10 · 92 阅读 · 0 评论 -
CF Round #681(Div.2)/CF1443 口胡题解
由于一些原因(时间),本蒟蒻决定口胡这场比赛。下面的题解纯口胡,但是与题解中的解法基本相同。SolutionA答案就是2n+2,2n+4,2n+6……4n2n+2, 2n+4, 2n+6……4n2n+2,2n+4,2n+6……4n。B考虑我们在一个位置放上一个111的意义何在——使得两段不连续的区间连续起来,可以一次清000。即,假设左边有一个区间,右边有一个区间,然后中间隔了kkk个格子;分别清空的代价是2a2a2a,而拼接起来(即把这kkk的格子全部填上111接着连续之后一次清000)的代价原创 2020-11-03 19:52:58 · 223 阅读 · 0 评论 -
TG模拟赛题解&&被吊打记
太菜了,游记也没什么好写的,全程都在打暴力;接着暴力还打挂,毫无悬念地被吊打了……就这个水平,别说NOIP 1=了,CSP-S 1=都没啦后来讲题听懂了两题,于是现在就开始写题解……T1首先,考虑一个十分显然的东西:如果一个数组能够两两配对,使得每个数都在恰好一个对里,且每对的两个数相等;那么显然先手会输。原因显然,先手能做的事情,后手也能做,他只需要控制上述条件的成立即可。即,假设原序列为1 1 2 21\ 1\ 2\ 21 1 2 2原创 2020-10-02 20:32:16 · 164 阅读 · 1 评论 -
CF 1092E Minimal Diameter Forest 题解
Solution 1首先,如果我们已经把这棵可爱的森林连成了一棵更加可爱的树,那么新树的直径是多少呢?类比CF804D(有我题解),可以得到直径来自下面两种情况之一:①老树中的直径(即在初始的森林形态时的每棵树);②对于两个来自不同老树的节点u,vu,vu,v后,它们之间的长度为:uuu所在的老树中,以uuu为一端的路径的最长链+在新树中,uuu所在的树与vvv所在的树的距离+vvv所在的老树中,以vvv为一端的路径的最长链。首先,我们考虑该如何连接节点,不考虑在哪些老树之间连边。显然,假设原创 2020-10-02 09:58:31 · 214 阅读 · 0 评论