专栏文章

キャッシュ戦略 题解

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

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miqelx9n
此快照首次捕获于
2025/12/04 03:32
3 个月前
此快照最后确认于
2025/12/04 03:32
3 个月前
查看原文
来源:utpc2011
编号:AT_utpc2011_8
tag:网络流建图
难度:紫
似乎好久没写题解了呢。
本文重点放在讲解为何是连边 x1x-1
这是一个最优化问题。在原序列扫描的时候,dp 状态非常之多,要同时维护 mm 个袋子的信息,所以不可行,随即考虑网络流。
对于两个相同且相邻的 aia_i,可以看做是一个段,因为后面显然是直接继承前面的最优,代价为 00。这一步可以将序列强化成相邻两个元素不相等的情况。
显然结构是线性扫描。考虑如何建边。由于结构是线性扫描,只要考虑一个点从下一个点袋子信息的变化即可。不难想到由 m=1m=1 的情况依次推到 m=Mm=M 的情况,所以求图上的费用流相当于求相对于 m=1m=1 的代价所能省下的钱。可以建出 (i,i+1,M1,0)(i,i+1,M-1,0) 的边表示不为了下一个颜色而保留位置的情况。
问题在于为了下一个颜色而保留位置的情况。注意到从 xx+1x\to x+1 的转移上这些袋子中恰好存在一个下一个接受的元素是 x+1x+1。也就是必须 强制 钦定某个转移是到 x+1x+1 的。若边建成 preaxxpre_{a_x}\to x 且总流量若为 MM 则不能保证必然存在一个 p=x+1p=x+1,总流量若为 M1M-1 则如某些状态 1 2 1 2 会漏算掉某一个贡献,这是由于第一个 1 必须强制流到第二个 1,而在 232\to 3 时此时剩余的一个袋子可以让 22 保留到 44,但是原图中并不能从 33 流向 22。建成 preaxx1pre_{a_x}\to x-1 则发现 x1xx-1\to x 的边恰好可以被没有计入真正流量的第 11 条流流过。也就是,xx+1x\to x+1 所有流的实际意义是有若干 (<m)(\lt m) 个袋子是跨过 i+1i+1 为更后面同颜色元素省钱, 剩下的流有一条是 恰好i+1i+1 保留的一个袋子,其他就是不需要留空间给后续元素的袋子。即连边 (preax,x1,1,wax)(pre_{a_x},x-1,1,-w_{a_x})
若有疑问和错误请指出,虚心接受您的意见。

评论

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

正在加载评论...