专栏文章

题解:P14278 [ROI 2014 Day2] 健康饮食

P14278题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miniieuw
此快照首次捕获于
2025/12/02 02:58
3 个月前
此快照最后确认于
2025/12/02 02:58
3 个月前
查看原文
可以发现从 (1,1)(1,1) 走到 (i,j)(i,j) 和从 (i,j)(i,j) 走到 (n,n)(n,n) 是独立的,因此令 fi,jf_{i,j} 表示 (1,1)(1,1) 走到 (i,j)(i,j)Ai,jA_{i,j} 出售相同的食品的售货机最多的数量,gi,jg_{i,j} 则表示 (i,j)(i,j) 走到 (n,n)(n,n) 售货机最多的数量,则显然 fi,j+gi,j1f_{i,j}+g_{i,j}-1 即为 Ai,jA_{i,j} 的冗余度。接下来仅讨论 fi,jf_{i,j} 怎么求,gi,jg_{i,j}fi,jf_{i,j} 求法类似。
最直接的,对于每个食品编号 tt,有 fi,j=max(fi,j1,fi1,j)+[Ai,j=t]f_{i,j}=\max(f_{i,j-1},f_{i-1,j})+[A_{i,j}=t]
想办法每次只遍历对答案有贡献的点,发现可以直接从一个位于左上的点转移到位于右下的食品编号相同的点,考虑每次直接枚举相同食品编号的点集,令食品编号为 tt 的点集为 StS_t,则有:fi,j=maxxi,yj,(x,y)SAi,jfx,y+1f_{i,j}=\max\limits_{x\le i,y\le j,(x,y)\in S_{A_{i,j}}}f_{x,y}+1
然后这个先排序然后对 yy 坐标开个线段树维护就行了,复杂度 O(n2logn)O(n^2\log n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...