有 个大小为 的照片堆,每张照片可以用一个二元组 描述,每个堆可以用一个四元组 描述,表示堆顶的照片为 ,堆底的照片为 。
Alice 和 Bob 要轮流取照片,Alice 先手,轮到某个人取时他可以选择跳过,若一轮中两人均选择跳过则游戏结束。
对于一张照片 ,Alice 取它能获得 分,Bob 能获得 分,位于堆底的照片要等到相应堆顶的照片被取掉才能取。
记 Alice 的得分和为 ,Bob 的为 。Alice 的目标是最大化 ,Bob 则要最大化 。
两人绝顶聪明,求出游戏结束时的 。
,。
AGC035D Add and Remove 做题记录
给定一个长 n 的序列 a,每次操作可以选择相邻三个元素 ai−1,ai,ai+1,将 ai−1 和 ai+1 都加上 ai 然后删掉 ai。操作完后序列会自动补位,即 ai−1 和 ai+1 会相邻。
最后会剩下两个元素,最小化它们的和。
2≤n≤18,1≤ai≤109。
P5336 [THUSC2016] 成绩单 做题记录
给定一个长 n 的序列 a,每次操作可以选择一个区间 [l,r] 将其删去,代价为 A+B×(l≤i≤rmax{ai}−l≤i≤rmin{ai}),其中 A 和 B 是给定的常数。
一个区间被删掉后两边的元素会自动补齐空位,求把序列删空的最小代价。
1≤n≤50,1≤A≤1500,1≤B≤10,1≤wi≤1000。
ARC149E Sliding Window Sort 做题记录
给定 n,m,k,考虑对某个 n 的排列 A(标号 0∼n−1)做如下操作:
- 从 0 到 k−1 枚举 i,把 [Ai mod n,A(i+1) mod n,A(i+2) mod n,…,A(i+m−1) mod n] 拿出来升序排序再放回去;
给定一个 n 的排列 B,求有多少个 A 满足操作完后会变成 B。
1≤m≤n≤3×105,1≤k≤109。
CF1718D Permutation for Burenka 做题记录
定义两个长 n 的数组相似,当且仅当对于每一个区间 [l,r],两个数组在该区间中最大值的位置相同。
给定 n 的排列 p 和一个长 n 且缺了 k 个值的数组 a,再给定一个大小为 k−1 的集合 S。
q 次询问,每次给定一个整数 d,求能否将 S∪{d} 以任意顺序填入 a 的空缺位置使得 a 和 p 相似。
保证 a,S,d 中元素两两不同。
1≤n,q≤3×105,2≤k≤n,1≤ai,Si,d≤106。
CF1253F Cheap Robot 做题记录
给定一张 n 个点 m 条边的无向图和一个正整数 k,边有边权表示机器人经过这条边消耗的电量,点 1,2,3,…,k 为充电中心。机器人可以在充电中心免费充满电。
q 组询问,每次给定两个节点 s,t,保证 1≤s,t≤k。你需要求解以下问题:
- 若有一个机器人从 s 出发,它的电池容量至少为多少才能顺利到达 t?
1≤n,m,q≤3×105
P5287 [HNOI2019] JOJO 做题记录
你需要动态维护一个字符串 S,有 n 次操作:
1 x c
:在 S 末尾加上 x 个字符 c,保证操作前 S 末尾字符不为 c;2 x
:撤销第 x 次操作后的所有操作;输出每次操作结束 S 的每个前缀的最长真 Border 的长度的和。
1≤n≤105,1≤x≤104。