[Trick] 格路记数 - 反射容斥

news/2024/10/5 19:41:44

Perface

模拟赛不会被冲烂了。

Problem I

\((0,0)\)\((n,m)\) 方案数。

解法:
\(C(n+m,m)\)

Problem II

\((0,0)\)\((n,m)\) 方案,但是不能经过 \(y=x+b\) 的直线。

解法:
考虑映射法。

以一条路径第一次碰到直线的位置为起点,之后所有的路线和 \(y=x+b\) 对称,这样可以不重不漏的映射完每一条路线。我们发现,这些路径的终点都是 \((m-b,n+b)\)

答案为:\(C(n+m,n)-C(m+n,m-b)\)

Problem III

\((0,0)\)\((n,m)\) 方案,但是不能经过 \(y=x+b\)\(y=x+c\) 的直线。

image

当第一次碰到蓝色线段时,我们进行翻折。

image

碰到红色线段,也就是对称的黑色线段时,再次翻折。

image

因此,穿过两次线段的我们也映射完了。

观察一下,本质上就是将终点与线段进行对称。

对于一条线依次经过了 \(y=x+b\),\(y=x+c\),记反射序列为 \(bc\),但是如果经过一条线两次 \(bbc\) 我们也看做 \(bc\),因为我们记第一次碰到折线为对称点做到不重不漏。

那么,答案就是 \(ans=\empty-b-c+bc+cb-bcb-cbc+bcbc+cbcb-...\) (容斥原理)

因此,我们需要推出一个对称点的公式,快速求出 \(cbcbcb\) 点的对称坐标。

不难发现,本质上就是线和终点关于线对称,不清楚的直接看图:

image

容易知道一个点 \((x,y)\) 对于 \(y=x+b\) 对称点为 \((y-b,x+b)\),直线为 \(y=x+c\) 变为 \(y=x+2b-c\),我们只需要动态维护两条直线然后模拟即可。

考虑边界情况。不难发现每两次坐标会变化 \(2|b-c|\),也就是时间复杂度为 \(O(\frac{n+m}{|b-c|})\)

被创飞了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/68102.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Burp功能 细解析

情境 第六周的培训甚是有趣, 更加详细的介绍了Burp工具的功能和使用细节. 虽然很有趣, 但是我学得很慢, 练习达到熟练掌握还需要练习. 以下是第五次培训的练习题 以及我的解答. 最后一题手生, 一开始没做出来.1、安装burp,分别在本机上实现全局代理和局部代理,提供设置过程的…

高级语言程序设计第二次作业(102400106刘鑫语)

这个作业属于课程:https://edu.cnblogs.com/campus/fzu/2024C/ 作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400106 姓名:刘鑫语 程序清单 最初都很顺利 3.1 3.2 3.3 3.4 3.5 3.6 出现了问题但一直没能解决,回宿舍后试着改成c99 依然报错,…

快乐数学4弧度

4 弧度 我们大多数人都不知道为什么圆要有 360 度。在学习高等数学或物理时,我们会记住一个神奇的数字--“圆的大小”,并将自己设置为一个 “圆的360度”。 专家们说:“弧度让数学变得更简单!”但却没有简单的理由(涉及泰勒级数的讨论并不简单)。今天,我们将揭开弧度的真…

序列化器ser.validated_data、ser.initial_data、ser.data

1.ser.data 示例:在视图中返回序列化后的数据 return Response(serializer.data)2.ser.validated_data if serializer.is_valid():validated_data = serializer.validated_data3.ser.initial_data 原始数据 4.示例: class LoginPwdSerializer(serializers.Serializer):mobile…

12-网络安全审计技术原理与应用

12.1 概述 1)概念 :指对网络信息系统的安全相关活动信息进行获取、记录、存储、分析和利用的工作。 作用:在于建立“事后”安全保障措施,保存网络安全事件及行为信息,为网络安全事件分析提供线索及证据,以便于发现潜在的网络安全威胁行为,开展网络安全风险分析及管理。 …

林史语其十(101-110)【下半更新】

12345鉴于收集素材与发布素材之间有一定延迟,此后林史一章分两次更新 先把存的旧东西发一下 #101故事源于 joke3579 学长博客里一份证明,涉及到求不定积分的 如果你不知道啥是不定积分,你只需要知道它是导数逆运算就行了 学长博客里写的是 :\(A\) 求导后等于 \(B\) HDK:\(…

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径 题目链接 题意:思路: 若当前点到最远的点的距离 \(< k\) , 说明 \(x\) 自己成为一个联通块。 并且我们知道距离任意一点最远的点一定是树直径的一个端点。 反之,则与直径端点在同一个联通块。 所以一个点要么独立…

Windows应急响应-Auto病毒

Windows—Auto病毒应急思路分享。目录应急背景分析样本开启监控感染病毒查看监控分析病毒行为autorun.inf分析2.异常连接3.进程排查4.启动项排查查杀1.先删掉autorun.inf文件2.使用xuetr杀掉进程3.启动项删除重启排查入侵排查正常流程 应急背景 运维人员准备通过windows共享文档…