CF725F Family Photos 做题记录

nn 个大小为 22 的照片堆,每张照片可以用一个二元组 (a,b)(a,b) 描述,每个堆可以用一个四元组 (a1,b1,a2,b2)(a1,b1,a2,b2) 描述,表示堆顶的照片为 (a1,b1)(a1,b1),堆底的照片为 (a2,b2)(a2,b2)

Alice 和 Bob 要轮流取照片,Alice 先手,轮到某个人取时他可以选择跳过,若一轮中两人均选择跳过则游戏结束。

对于一张照片 (a,b)(a,b),Alice 取它能获得 aa 分,Bob 能获得 bb 分,位于堆底的照片要等到相应堆顶的照片被取掉才能取。

记 Alice 的得分和为 tata,Bob 的为 tbtb。Alice 的目标是最大化 tatbta-tb,Bob 则要最大化 tbtatb-ta

两人绝顶聪明,求出游戏结束时的 tatbta-tb

1n1051\le n\le 10^50a1,b1,a2,b21090\le a1,b1,a2,b2\le 10^9

阅读全文 »

AGC035D Add and Remove 做题记录

给定一个长 nn 的序列 aa,每次操作可以选择相邻三个元素 ai1,ai,ai+1a_{i-1},a_i,a_{i+1},将 ai1a_{i-1}ai+1a_{i+1} 都加上 aia_i 然后删掉 aia_i。操作完后序列会自动补位,即 ai1a_{i-1}ai+1a_{i+1} 会相邻。

最后会剩下两个元素,最小化它们的和。

2n182\le n\le 181ai1091\le a_i\le 10^9

阅读全文 »

P5336 [THUSC2016] 成绩单 做题记录

给定一个长 nn 的序列 aa,每次操作可以选择一个区间 [l,r][l,r] 将其删去,代价为 A+B×(maxlir{ai}minlir{ai})A+B\times \left(\max\limits_{l\le i\le r}\{a_i\}-\min\limits_{l\le i\le r}\{a_i\}\right),其中 AABB 是给定的常数。

一个区间被删掉后两边的元素会自动补齐空位,求把序列删空的最小代价。

1n501\le n\le 501A15001\le A\le 15001B101\le B \le 101wi10001\le w_i\le 1000

阅读全文 »

ARC149E Sliding Window Sort 做题记录

给定 n,m,kn,m,k,考虑对某个 nn 的排列 AA(标号 0n10\sim n-1)做如下操作:

  • 00k1k-1 枚举 ii,把 [Ai mod n,A(i+1) mod n,A(i+2) mod n,,A(i+m1) mod n][A_{i\text{ mod }n},A_{(i+1)\text{ mod }n},A_{(i+2)\text{ mod }n},\dots,A_{(i+m-1)\text{ mod }n}] 拿出来升序排序再放回去;

给定一个 nn 的排列 BB,求有多少个 AA 满足操作完后会变成 BB

1mn3×1051\le m\le n\le 3\times 10^51k1091\le k\le 10^9

阅读全文 »

CF1718D Permutation for Burenka 做题记录

定义两个长 nn 的数组相似,当且仅当对于每一个区间 [l,r][l,r],两个数组在该区间中最大值的位置相同。

给定 nn 的排列 pp 和一个长 nn 且缺了 kk 个值的数组 aa,再给定一个大小为 k1k-1 的集合 SS

qq 次询问,每次给定一个整数 dd,求能否将 S{d}S\cup\{d\} 以任意顺序填入 aa 的空缺位置使得 aapp 相似。

保证 a,S,da,S,d 中元素两两不同。

1n,q3×1051\le n,q\le 3\times 10^52kn2\le k\le n1ai,Si,d1061\le a_i,S_i,d\le 10^6

阅读全文 »

CF1253F Cheap Robot 做题记录

给定一张 nn 个点 mm 条边的无向图和一个正整数 kk,边有边权表示机器人经过这条边消耗的电量,点 1,2,3,,k1,2,3,\dots,k 为充电中心。机器人可以在充电中心免费充满电。

qq 组询问,每次给定两个节点 s,ts,t,保证 1s,tk1\le s,t\le k。你需要求解以下问题:

  • 若有一个机器人从 ss 出发,它的电池容量至少为多少才能顺利到达 tt

1n,m,q3×1051\le n,m,q\le 3\times 10^5

阅读全文 »

P5287 [HNOI2019] JOJO 做题记录

你需要动态维护一个字符串 SS,有 nn 次操作:

  • 1 x c:在 SS 末尾加上 xx 个字符 cc,保证操作前 SS 末尾字符不为 cc
  • 2 x:撤销第 xx 次操作后的所有操作;

输出每次操作结束 SS 的每个前缀的最长真 Border 的长度的和。

1n1051\le n\le 10^51x1041\le x\le 10^4

阅读全文 »

CF839E Mother of Dragons 做题记录

给定一张 nn 个点的边集为 EE 的无向图和一个正整数 KK,你要给每个点分配一个非负实数点权 sis_i,满足 si=K\sum s_i=K(u,v)Esu×sv\sum\limits_{(u,v)\in E}s_u\times s_v 最大。输出该式子的最大值(保留 66 位小数)。

1n401\le n\le 401K10001\le K\le 1000

阅读全文 »