【Public Judge NOIP Round 2】排序 做题记录

给定 nn 和一个 nn 的排列 aa,考虑以下过程:

维护一个初始为空的栈,然后从 11nn 枚举 ii

  • aia_i 比栈顶严格大或栈为空,那么把 aia_i 加入栈中;
  • 否则:
    • 把栈顶弹出,并把 aia_i 加入栈中。注意,你需要保证操作完成后栈中元素从底到顶严格单调递增;
    • 什么也不干;

请你求出最后栈大小的最大值。

1n5×1051\le n\le 5\times 10^5

阅读全文 »

CF1278E Tests for problem D 做题记录

给一棵 nn 个点的树,构造 nn 条线段,要求每个端点都是 [1,2n][1,2n] 中的整数且不重复,并使得两个点 i,ji,j 在树上有边,当且仅当线段 i,ji,j 相交且不包含。

1n51051 \le n \le 5 \cdot 10^5

阅读全文 »

CF1468H K and Medians 做题记录

给定奇数 kk 和长度分别为 n,mn,m 的序列 a,ba,b,序列 aa 包含所有整数 ii 满足 1in1\leq i\leq nbb 是给定的单调不减的序列。

现在你可以进行零次或若干次操作,每次操作选择序列 aakk 个整数,然后删除这 kk 个数里除了他们的中位数的其他 (k1)(k-1) 个数。

求能否通过零次或若干次操作从序列 aa 的到序列 bb。能就输出 YES,不能输出 NO

3n2×105;3kn;1m<n3\leq n\leq 2\times 10^5;3\leq k\leq n;1\leq m<n1b1<b2<...<bmn1\leq b_1<b_2<...<b_m\leq n

阅读全文 »

CF804C Ice cream coloring 做题记录

有一颗 nn 个节点的树 TTmm 种冰淇淋,树上的第 ii 个节点有 sis_i 个冰淇淋,且所有相同种类的冰淇淋在树上构成了一个联通块。

构造一个新的图 GGGGmm 个节点,GG 中的 u,vu,v 之间有边,当且仅当存在至少一个在 TT 上的节点满足他同时有第 uu 种和第 vv 种冰淇淋。

你的任务是用尽可能少的颜色种类数给 GG 的每一个节点染色,使得没有两个相邻的节点有相同的颜色,要求输出方案。

注意空的点集也被认为是一个联通块。

1n,m3×1051\le n,m\le 3\times 10^{5}0si3×1050\le s_{i}\le 3\times 10^{5}si5×105\sum s_i\le 5\times 10^5

阅读全文 »

CF1158B The minimal unique substring 做题记录

构造一个长度为 nn0101ss,使得:

  • 任意长度小于 kk0101 串,或者不是 ss 的子串,或者在 ss 中出现了至少 22

  • 至少存在一个长度为 kk0101 串,在 ss 中出现了恰好一次

保证 nk(mod2)n\equiv k (mod 2)

1kn1051\le k\le n\le 10^5

阅读全文 »

CF1526D Kill Anton 做题记录

给定一个字符串 aa,你可以任意打乱 aa 中字符的顺序,记打乱后的字符串为 bb。记 bb 的价值为将 bb 转换为 aa 所需的最小交换次数(交换指交换两个相邻元素)。输出价值最大的 bb

若有多种答案,任意输出一种。

1a1051\le |a|\le 10^5

阅读全文 »

CF549G Happy Line 做题记录

给定一个 nn 个元素的整数序列 aa, 任意时刻对于任一对相邻元素 (ai1,ai)(a_{i-1},a_i),若 ai1>aia_{i-1} > a_{i} 则要依次执行如下操作:

a[i-1]--,a[i]++,然后交换 ai1a_{i-1}aia_i 的位置。

经过若干次操作后,若能使整个序列变成非降的,则输出最终的序列;否则输出 :(

1n2×105,0a[i]1091 \leq n \leq 2\times 10^5, 0 \leq a[i] \leq 10^9

阅读全文 »