题目

传送门 to CF

思路

我们认定 a r , c = V a_{r,c}=V ar,c​=V 是个坏种,姑且不考虑之。

经过一些尝试,显然没办法 d p \tt dp dp 。变换维度,从值域角度考虑,得到相似的结果:每一行的桶排数组的前缀和(单调不降)在列上单调不增。容斥不能使问题变简单。

尽管如此,穷途末路,还是要从简单的 n = 2 n=2 n=2 想起。此时,似乎 2 n d \rm 2nd 2nd 行一直 “压着” 1 s t \rm 1st 1st 行——在坐标系里画出折线图,似乎只需二者的上下关系不改变。

我便想起一道老题 A Path Plan \text{A Path Plan} A Path Plan,核心是交换交点之后的路径,得到另一种本质相同的路径。这玩意儿就是 L G V \rm LGV LGV 引理。内容说白了就是 “交换第一个交点之后的路径归属,因为符号相异而权值相抵”。

要点在于:路径可交换,以及交换后不影响交点的存在性。

在本题里,如果选用折线图,交换后折线便不相交哩。还是考虑在坐标系内行走吧。

令 x → ( x + 1 ) x\to(x{+}1) x→(x+1) 时的 y y y 坐标表示 b x b_x bx​ 。还是考虑 n = 2 n=2 n=2,如果两行以同一列为起点,你会发现 “不相交” 实际上是 b 1 , x < b 2 , x − 1 b_{1,x}<b_{2,x-1} b1,x​<b2,x−1​ 。因此让 2 n d \rm 2nd 2nd 行后退一列,就刚好是 b 1 , x < b 2 , x b_{1,x}<b_{2,x} b1,x​<b2,x​ 。

严格递增,就是让 b i , j = a i , j + i b_{i,j}=a_{i,j}+i bi,j​=ai,j​+i 。问题已经变为不相交路径对数量。我们再指明一下终点吧。

对于 1 s t \rm 1st 1st 行,起点 ( 0 , 1 ) (0,1) (0,1),终点 ( m , k ) (m,k) (m,k) 。对于 2 n d \rm 2nd 2nd 行,起点 ( − 1 , 2 ) (-1,2) (−1,2),终点 ( m − 1 , k + 1 ) (m{-1},k{+}1) (m−1,k+1) 。

以此类推可解 n > 2 n>2 n>2 情景。由于不相交路径只有这样一种选择,所以不必担心起点终点不对应的情况。

现在,加入 a r , c = V a_{r,c}=V ar,c​=V 的约束。这相当于规定第 r r r 行的路径必须经过的边。兔与狗都告诉我,这是不可能的。在一般的平面 D A G \rm DAG DAG 图上,确实如此。但是这个平面图呢?

看了题解,发现一种方式:统计这条边(非严格)右下方有多少路径。引入生成函数,若 a → b a\to b a→b 在这条边右下方就乘 x x x 。这是在 路径交换时保持不变 的量,因此可以计算。

而这条边被第 r r r 条路径经过,等价于非严格右下方恰好有 r r r 条路径,且这条边被经过了。后者容斥。于是问题就变成了元素是多项式的矩阵的 L G V \rm LGV LGV 。插值再计算即可。

其实我们可以做 k ⩽ 1 0 9 k\leqslant 10^9 k⩽109 。求出在某条边下方的路径数量,可以 O ( n ) \mathcal O(n) O(n) 枚举,然后计算组合数;用到的组合数的上指标在长度为 O ( n ) \mathcal O(n) O(n) 的 O ( 1 ) \mathcal O(1) O(1) 个区间内,下指标有 O ( n ) \mathcal O(n) O(n) 种,可以预处理。总时间复杂度 O ( n 4 ) \mathcal O(n^4) O(n4) 。我又想无意义地加强了。

可是出题人并不喜欢这样做

[CF_GYM102978A]Ascending Matrix相关推荐

  1. [XXI Open Cup,Grand Prix of Tokyo]Ascending Matrix

    Ascending Matrix 题解 首先,这道题是要求所有的数列是从上往下,从左往右,都是递增的. 首先从左往右递增,我们可以去考虑它的差分序列,每个点的值就是它前面差分序列的点数嘛. 从上往下递 ...

  2. 我的收藏中的十大开源论坛

    有许多用PHP,ASP.NET和Perl编写的免费开源论坛系统(公告板,留言板). 以下是我最喜欢的免费开源论坛收藏集的列表. 我只列出了具有详细文档和良好社区支持的论坛. PS此列表不按任何特定顺序 ...

  3. LGV 引理——二维DAG上 n 点对不相交路径方案数

    文章目录 引入 简介 定义 引理 证明 例题 释疑 扩展 引入 有这样一个问题: 甲和乙在一张网格图上,初始位置 (x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1​,y1​) ...

  4. LeetCode-240 Search a 2D Matrix II

    题目描述 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the ...

  5. 一二三系列之状压DP——Max Correct Set(一)Neko Rules the Catniverse (Large Version)(二)Make It Ascending(三)

    文章目录 一:CF1463F 二:CF1152F2 三:CF1342F 一:CF1463F Max Correct Set 有一个结论:以x+yx+yx+y为周期排列填充一定是不劣于最后的答案的 令p ...

  6. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

  7. Kth Smallest Element in a Sorted Matrix

    类似的题目有: 373. Find K Pairs with Smallest Sums 378. Kth Smallest Element in a Sorted Matrix 668. Kth S ...

  8. [Leetcode] 240. Search a 2D Matrix II 解题报告

    题目: Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the f ...

  9. leetcode378. Kth Smallest Element in a Sorted Matrix

    题目要求 Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the ...

最新文章

  1. 容器开启数据服务之旅系列(一):Kubernetes如何解自建PostgreSQL运维之痛
  2. python网络爬虫资源库名_Python网络爬虫
  3. c#中索引器是什么_C#中的索引器
  4. 什么是机器学习?(下)
  5. 如何解决Windows 10屏幕字体缩放模糊问题
  6. webpack打包VUE项目读取外部配置文件,灵活配置域名
  7. 华为综合测评是什么_喝水不用等待,温度随心控随时喝到热水,测评华为智选恒温电水壶...
  8. Java程序员须知的七个日志管理工具
  9. 补码加减法判断进位判断是否溢出的总结
  10. ubuntu 安装vnc_vnc4server arm架构
  11. C语言中的sqrt函数
  12. 华为认证计算机英语,hcna考试是英文还是中文
  13. 电力系统决策支持系统
  14. Paxos 算法详解
  15. 基于javaweb+jsp的在线书城书店系统(java+jdbc+Servlet+mysql)
  16. 浏览器语音附加背景音乐
  17. 《网络是这样连接的》读书笔记2
  18. Ubuntu安装拼音输入法
  19. 中国古代兵器与兵书·铁马驰骋
  20. AR涂涂乐⭐一、unity高版本ImageTarget识别图开始是空白的解决办法、UI自适度

热门文章

  1. DataFrame对时间序列的操作
  2. 实验一 交换下的冗余链路设计
  3. 500kW储能变流器(PCS)采用T型三电平模块,结构三维、控制电路、
  4. SAP中VK13中展示完整的价格区间
  5. word文件属性计算机删除,清除Office中个人信息等2则 -电脑资料
  6. 数学建模模型10——种群增长
  7. 《企业大数据系统构建实战:技术、架构、实施与应用》一导读
  8. 中国石油大学《法学导论》第三次在线作业
  9. 区块链DAPP-基于Truffle框架的宠物商店
  10. 用饮水机教你什么是RAID