2024.9.8 闲话
前言:以前就想写一下 kernel method 的介绍,刚才 joke3579 又催了一下,那么就简单写了一份说明 .
upd. joke3579:the Kernel Method: a collection of examples 读后感 .
核方法 (kernel method) 可以用来解决一类空间上的随机游走问题,可能有一些位置有几条直线作为边界不能越过,这个中文名字是我瞎翻译的 .
省流
一般形式说明起来也不太容易讲清楚,这个省流比较混乱最好还是不看,直接看后面的例子基本上也能看明白了 .
大概操作就是考虑多元生成函数 分别计量走到的位置 和走的步数 ,那么可以大概得出一个这种类型的方程:
这里 枚举格路上的一步, 用来限制不能走出边界 .
此时令核函数 然后可以把方程简化为:
这里 可能有一些部分不一样, 是一个固定多项式 .
然后解方程的话基本是考虑依次解出每个 ,可以分别构造一个别的项都没有贡献的 代入 .
然而这个省流基本上也不太可读,举一些例子方便理解一下:
Catalan 数
从 出发,每次走一步 或 ,不能走到 轴下方,问走到 的方案数 .
令答案是 ,考虑二元生成函数:
那么可以根据定义导出一个简单的方程:
此处令 ,这是这个游走问题的核 (kernel),则方程可以简化为:
这个方程还不能直接解出,此时考察函数 使得 ,可以解出:
由于某些原因此处需要 ,于是这里 取负号 . 在方程中代入 等号左边就是 0 了,从而即可解出 ,进而可以解出 . 后面都是一些简单的操作,不展开叙述 .
值得注意的是,EI 利用游走的对称性给出了一个解方程的其他方法:「营业日志 2021.2.5」反射容斥的代数推导 .
然后可以看一下二元的情况怎么解方程:
云斗括号序列题 组合刻画部分
一个仅含 的字符串是好的当且仅当可以把每个 替换为 或 使得最终形成一个匹配的括号串 .
计算长为 含 个 的好串个数 .
让我们跳过一些组合推导,快进到解方程环节:
其中核函数 .
这里先考虑去掉 ,考虑函数 满足 ,那么代入 就可以了 .
然后就变成一元情况了,可以使用上一个问题的操作方法 .
最后的结果可以看 2024.7.28 闲话,还是挺复杂的 .
另一个二元形式的例子:The 3rd UCup Stage 1: St. Petersburg. L. Candies,这里二元指的是只有两个方向有限制 . Alpha1022 的题解基本上也是使用的 kernel method,不过解方程部分用的是类似 EI 反射容斥代数推导的方法 .
参考资料:THE KERNEL METHOD: A COLLECTION OF EXAMPLES, Helmut Prodinger .
图
meme
结果机房的 IP 还是没解封。。敲打一下(
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18402671
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】