记录最近的一些题目
CF 1600E
得到一个性质:只有从头开始的连续上升子串才能被取(因为要求每次取的数是严格递增的),结尾也是一样。
于是只需要考虑前 p 个和后 q 个数。
- 当 p q 都是偶数时,显然后手必胜(每次都取先手取的数的后一个数)
- 当 p q 有一个奇数时,显然先手必胜(第一步取奇数侧,变成必败态)
- 当 p q 都为奇数时,先手必胜(取第一项大的那一侧,该侧为必败,另一侧无法取)
1
CF1594E2
首先,如果一棵大小为 n 树内没有限制且根的父亲已经确定,那么这棵树的染色方案数就是 4n 。
再来考虑暴力dp,大约是 O(2k×62) ,主要瓶颈是大量没有限制的点。
考虑将每个有限制的点到根的路径上的点全部标记,再这个连通块内dp,再乘上 4剩下点数 就是答案。
code
CF 1599A
巧妙的构造。
将放在天平左边记为 + ,右边记为 − 。
首先考虑排序,对有序数列一次添上正负。
$ a[] = +1, -2, +3, -4, +5, -6, +7, -8 $
显然
$ ∣a1+a2⋯+an∣<∣an+1∣ $
因此,再原序列的一个子串的基础上:
- 再子串前端(下标减小方向)添加数,子串和不变号。
- 再子串后端添加数,子串和一定变号。
换句话说,一个子串和的符号只由其中的最后一个值的符号决定。
于是对于需要构造的LR序列,只要再所有天平朝向改变的位置进行变号(向右边取一个),否则不变号(向左取)。
在此之前,先统计两种操作的数量(和一定为 n ),确定初始的空序列在哪个位置。
此外还要确定 a1 的符号,后面才能依次变号。
gym 100512
Andrew Stankevich Contest 42
D
换根lca
就是 1↔root 的路径调个头
C
N/A
B
暴力dp必然超时,考虑每次输的概率更大,最优策略就是每次押尽量多
gym 100851
ACM ICPC 2015–2016, Northeastern European Regional Contest
B
求第 k 大的“十进制表示为二进制表示的后缀”的数。
- 若 1A 合法,则 A 也合法,因为 10n 的二进制表示末尾必然也是 n 个 0 。
于是只要再所有 ≤2n−1 合法的数加上 2n ,留下合法的结果,就是所有 ≤2n+1 合法的数。
L
二分最高点的高度。
具体实现比较恶心。
G
见 完整题解
HDU某比赛
2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)
1008
分类推式子。
具体见 [完整题解](/upload/2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)-题解.pdf)
1010
经过尝试,发现二分图需要连成一个环(显然每个点至少两条边,因此一定是最优解,并且一定能连成一个环)
字典序最小,大概就是维护并查集+贪心。
1011
想了很久。。
具体见 [完整题解](/upload/2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)-题解.pdf)