OSDN Git Service

Merge branch 'master' into patch-2
authormgt <mgt@oi-wiki.org>
Sat, 2 Jan 2021 14:25:03 +0000 (22:25 +0800)
committerGitHub <noreply@github.com>
Sat, 2 Jan 2021 14:25:03 +0000 (22:25 +0800)
1  2 
docs/ds/queue.md

@@@ -66,9 -66,9 +66,9 @@@ int q[SIZE], ql = 1, qr
      2. 在后端插入 (w,v)
      3. 删除前端的二元组
      4. 删除后端的二元组
-     5.  给定 l,r,在当前 deque 中选择一个子集 S 使得 $\sum_{(w,v)\in S}w\bmod p\in[l,r]$ ,且最大化 $\sum_{(w,v)\in S}v$ .
+     5. 给定 l,r,在当前 deque 中选择一个子集 S 使得 $\sum_{(w,v)\in S}w\bmod p\in[l,r]$ ,且最大化 $\sum_{(w,v)\in S}v$ .
      
 -     $m\leq 5\times 10^4,p\leq 500$ .
 +         $m\leq 5\times 10^4,p\leq 500$ .
  
  ??? note "解题思路"
      每个二元组是有一段存活时间的,因此对时间建立线段树,每个二元组做 log 个存活标记。因此我们要做的就是对每个询问,求其到根节点的路径上的标记的一个最优子集。显然这个可以 DP 做。 $f[S,j]$ 表示选择集合 S 中的物品余数为 j 的最大价值。(其实实现的时侯是有序的,直接 f[i,j]做)