首页 > TAG信息列表 > opl
CF487 B. Strip
Problem - 487B - Codeforces 题意: 一个n个数的数组,要求把他们划分为最少的连续段,满足: 1、每段长度至少为l 2、每段的最大值-最小值不超过s dp[i]表示前i个数最少要划分为多少段 枚举j(j<=i-l),若[j+1,i]的最大值-最小值不超过s,那么dp[i]=min(dp[i],dp[j]+1) 枚举j是n^2的,可题解 Luogu P3285 [SCOI2014]方伯伯的OJ
题意 初始有 \(n\) 个人,编号为 \(1\sim n\),每个人有一个排名,初始排名即编号。现在有 \(m\) 次操作: 将编号为 \(x\) 的人编号改为 \(y\),排名不变。保证当前没有编号为 \(y\) 的人。 将编号为 \(x\) 的人的排名改为 \(1\) 将编号为 \(x\) 的人的排名改为 \(n\) 查询排名为 \(k\) 的[NOIP模拟46]鼠树
神仙题。 首先不考虑把黑点变白,发现每个白点的信息与它的归属点是相同的。可以在线段树中只维护黑点的信息,再记录$DFS$序上每个点之前黑点个数的前缀和,每次操作可以二分出该点的归属点进行操作。 具体维护黑点管辖点的个数与它的权值,及前两者乘积之和。一些其他的点数可以通过子树