全序矩阵

名字我瞎起的。

给出两个序列 a1,,anb1,,bm,元素均属于一个全序集。

构造 01 矩阵 Mi,j=[ai<bj]

性质:

(一)M 可以通过行、列重排(具体地:将 a,b 分别排序)得到一个阶梯的值是 1 的矩阵。
(二)M 任意两行一定是子集-超集关系。
(三)M 任意两列一定是子集-超集关系。
(四)不存在 2×2 的子矩阵(不要求连续)使得一个对角线是 0,另一对是 1
(五)前四条性质和定义互为充要条件。

考虑这样的问题:将值为 1 的位置看作障碍,能否从 (1,1) 四连通地走到 (n,m)

考虑一个经典的网络流建模:从左侧、下侧流到右侧、上侧,两个八连通的位置之间建边,最大流就是最少要移除的障碍数。

若原问题走不到,随便找一条流,按照起点终点分类:

左侧 右侧

八连通地经过值为 1 的位置,设经过的行编号的区间为 [d,u],由性质(二),

x[d,i] y[1,m] Mx,y=1

下侧 上侧 同理于上文。

左侧 上侧

设经过行区间 [d,u],列区间 [l,r],由性质(二)和(三),存在 x,y 使得

Mx,1,,Mx,y1,Mx,y,Mx1,y,,M1,y

全是 1(一个“L”形)。

下侧 右侧 同理于上文。

同样地,我们来证明若能走到,一定存在一条右下路径。

套用上述证明的调整法+子集求并的思路,一定存在一行一列分别全是 0,然后就可以将路径调整成不经过“一三象限”,对“二四象限”递归证明即可。

[NOIP2023] 双序列拓展:用上面的结论做完了。

XXI Open Cup, Grand Prix of Korea B. Cactus Competition:ai+bj0ai1<bj,然后用上面结论,然后二分啥的维护

posted @   ShaoJia  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2022-09-27 笛卡尔树
点击右上角即可分享
微信分享提示