当前位置: 首页 > news >正文

骗我呢

\(\mathbf{Part. 1}\)

从右往左考虑肯定没啥前途,我们考虑从上往下扫行。对于每一行,它上面的元素肯定都是单调递增的,又知道元素的值域在 \(0\)\(m\),而一行总共有 \(m\) 个数,因此每行可以被表示为 \(0\)\(m\) 失去一个数后按顺序排好。因此,我们可以用一个 \(0 \leq x \leq m\) 的数来表示一行。

我们设 \(f_{i, j}\) 表示前 \(i\) 行,第 \(i\) 行失去了 \(j\) 的方案数。那么,考虑相邻两行如何转移。

image-20251020210643804

首先,假设我们要从 \(i - 1\)\(i\) 转移,而 \(i - 1\) 失去的是 \(x\)。分两部分:

  • 对于第 \(i - 1\) 行的 \(x + 1\)\(m\),转移到 \(i\) 行后肯定是 \(x + 2\)\(m\)
  • 对于 \(0\)\(x - 1\),我们可以让消失的数从 \(0\) 取到 \((x + 2) - 1 = x + 1\)

上面结合具体实例理解。

假设 \(i\) 失去了 \(x\)\(i - 1\) 失去了 \(y\),有 \(x \leq y - 1\),因此 \(f_{i, j} = \sum_{k = 1}^{j + 1} f_{i - 1, k} = f_{i, j - 1} + f_{i - 1, j + 1}\)

这里将求和转化为两个数相加十分关键。

\(\mathbf{Part. 2}\)

我们观察这个 DP 式子,画出转移的图:

image-20251020211104573

可以看到,有两种移动方式:向右或者向左上。不妨将这个东西转化为我们更熟悉的网格图,向右和向上。如图。

image-20251020211922622

紫色是处理 \(f_{i, 0} = f_{i - 1, 0}\) 时的特殊转移。

那么,这个 DP 的式子实际上就等价于只经过图中的这些点和边,从 \((0, 0)\)\((n + 1, m)\) 的方案数。

而这些边点的限制就相当于我们只能向右 / 向上走,不经过两边的斜率为 \(1\) 的斜线。

对于做括号序列比较多的同学来说,这个就比较经典了。

\(\mathbf{Part. 3}\)

我们考虑反射容斥。

image-20251020212915580

如上图,我们假设左边的斜线为 \(A\),右边的为 \(B\),那么先容斥, 答案转化为 \(\text{ANS} - \text{先碰到到 A 的路径个数} - \text{先碰到到 B 的路径个数}\)。显然,先到 \(A\) 和先到 \(B\) 的两个问题是对称的,所以我们只考虑 \(A\)

如上图,我们取出来这条路径第一次碰到 \(A\) 的点,将这个点之后的整条路经翻转到 \(P'\),并观察 \(O \to P\) 先到 \(A\) 的路径和 \(O \to P'\) 的路径。实际上,这两个集合可以构成双射,证明显然。

因此,我们只需要计算 \(O \to P'\) 的路径数即可。

问题似乎解决了……吗?

\(\mathbf{Part. 4}\)

我们来想为什么这样会算错。

image-20251020224209539

如上图,我们有一条经过 \(A, B\) 的路径,但在被 \(A\) 翻折一次,被 \(B\) 翻着一次后,被减了两次。

其实,\(\mathbf{Part. 3}\) 中我们计算的路径个数,只是经过 \(A\) 的路径个数,而不是先碰到 \(A\) 的路径个数。所以,我们还要加上那些被重复计算的方案,比如分别经过 \(A, B\)\(B, A\) 的路径。

因此,我们定义 \(f(t)\),其中 \(f(\texttt{AB})\) 就表示分别经过 \(A, B\) 的路径个数,\(f(\texttt{BAB})\) 就表示分别经过 \(B,A,B\) 的路径个数。只要能算出来 \(f\),答案就是 \(\text{ANS} - f(\texttt{A}) - f(\texttt{B}) + f(\texttt{AB}) + f(\texttt{BA}) - \cdots\)

\(\mathbf{Part. 5}\)

我们以 \(f(\texttt{AB})\) 和下图的这个路径为例,考虑如何计算 \(f\)

img

这是初始的路径,设上面的对角线是 \(A\),下面的是 \(B\)我们先将这个路径与 \(A\) 做一遍 \(\mathbf{Part. 3}\) 的翻转(同时,把 \(B\) 也对称过去),然后再将新的路径对新的 \(B\) 做一遍翻转。如下:

img

设终点为 \(P\)。第一次关于 \(y=x+b\) 对称,第二次关于 \(y=x+2b−c\)(也就是 \(y = x + b\) 关于 \(y = x + c\) 对称的结果)对称。相信看到这里你已经知道大概怎么做了。

我们考虑更朴素的情况,设 \(F(S)\) 条路径对应的字符串是 \(S\)

  • 按顺序遍历字符。
  • 如果是 \(A\)\(P\)\(y=x+c\) 都关于 \(y=x+b\) 对称。
  • 如果是 \(B\)\(P\)\(y=x+b\) 都关于 \(y=x+c\) 对称。
  • 最后得到的 \(P\)\((0,0)\) 的路径数就是 \(F(S)\)
  • 如果 \(P\) 的横坐标或纵坐标小于 \(0\),就舍去。

现在,结合 \(\mathbf{Part. 4}\) 的答案式,我们就可以解出ci'y't

http://www.rkmt.cn/news/26678.html

相关文章:

  • 手搓文件管理系统(持续开发中)
  • AGC001~030 合集
  • AGC 合集 1.0
  • 深入BERT内核:用数学解密掩码语言模型的工作原理
  • [论文笔记] Precision-Guided Context Sensitivity for Pointer Analysis
  • 朋友圈文案不会写?这个AI指令可能帮得上忙
  • 职责分离的艺术:剖析主从Reactor模型如何实现极致的并发性能
  • 数学题刷题记录(数学、数论、组合数学)
  • 记录一次raid恢复之后数据库故障处理(ora-01200,ORA-26101,ORA-600)---惜分飞
  • 深入认识ClassLoader - 一次投产失败的复盘
  • 软件工程第三次作业-结对作业
  • 2025年线路调压器厂家推荐榜:10kv线路调压器/单相线路调压器/三相线路调压器/助力电网稳定运行,优选品牌指南
  • 2025 智能/商超照明/灯具/灯光/源头厂家推荐榜:上海富明阳凭分区域光效领跑,生鲜 / 百货场景适配优选
  • 2025 变电站厂家推荐榜最新资讯:撬装变电站/移动车载变电站/预制舱式变电站/移动变电站/预装式变电站/聚焦智能适配与可靠服务,这家企业成优选​
  • helloworld的输出
  • 2025 艺考文化课推荐榜:济南震华学校 5 星领跑,全阶段体系适配基础补弱到高分冲刺
  • 2025 广州人力资源/派遣/劳务外包/人事代理/推荐榜:精典人才凭派遣合规 + 全场景适配领跑,企业用工优选
  • 读书日记2
  • 深入解析:【Linux】生产者消费者模型
  • 湖南新建高速项目的“神经网络”是如何搭建的?——揭秘80公里高速的收费、通信、监控一体化系统
  • 深入解析:大数据Spark(六十六):Transformation转换算子sample、sortBy和sortByKey
  • 完整教程:web前端团队开发code review方案最佳实践
  • 最大值的不同统计方法
  • 加密货币如何改变金融诈骗的游戏规则
  • java的字符和字符串
  • python_日志记录-loguru
  • 2025年流量计厂家权威推荐榜单:电磁流量计、超声波流量计、涡街流量计、质量流量计专业制造商深度解析
  • day03-Coze记忆-对话体验
  • 2025年印染水洗机厂家权威推荐榜:高效水洗设备与环保节能技术深度解析,专业水洗机厂家精选
  • 2025年角接触轴承厂家推荐排行榜,高精度/高承载/高精密/机床主轴/汽车/定制/可替代进口/高转速/高刚性角接触球轴承公司推荐