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

AT_arc083_d [ARC083F] Collecting Balls 笔记

模拟赛 #46 T3。

分析一下,如果有一个机器人对应的一条直线都没有球捡,那就不可能捡完,输出 \(0\),好像没有其他不合法的情况了。

一个球和 \((x,y)\) 有关,按照二分图的套路我们令 \(x\to y+n\) 连无向边,若最终决定这条边指向 \(x\),就说明由机器人 \((x,0)\) 领取,否则由 \((0,y)\) 领取。

由于每个机器人只捡一个球,因此可以发现建出来的图是基环树森林。

现在考虑决定边的指向,可以发现这是内向基环树森林,因为每个点的入度为 \(1\)。可以发现每棵基环树互相独立,因此我们考虑其中一棵基环树,找出他的环,按照正向 / 反向就有两种可能,于是我们遍历一次就能得到每个点领取了哪条边。但是我们能捡到这个球的条件是没有被阻挡,若 \((x,0)\) 领取 \((x,y)\),则所有满足 \(y'< y\) \((x,y')\) 的小球都要先被领取;若 \((0,y)\) 领取 \((x,y)\) 同理。因此,对一个点进行领取操作的顺序构成了拓扑序。

现在要求拓扑序计数,据说这是没有多项式做法的,因此我们继续挖掘性质。

研究一下这个拓扑序,结合题意理解,每个 \(x\) 机器人只会是一个 \(y\) 机器人的前提,每个 \(y\) 机器人只会是一个 \(x\) 机器人的前提,因此每个节点只有一条出边,这是一棵内向树。

现在我们由一棵基环树 \(i\) 得出了若干个内向拓扑树,现在要求拓扑序个数 \(f_i\),设拓扑树上每个节点的子树大小是 \(\mathrm{sz}_u\),内向拓扑森林总大小,也就是基环树的大小为 \(\mathrm{SZ}_i\),则有

\[f_i=\frac{\mathrm{SZ}_i!}{\prod \mathrm{sz}_u} \]

考虑先给节点随便排序,对于一棵以 \(u\) 为根的子树,根节点在拓扑序中必须出现在这 \(\mathrm{sz}_u\) 个节点的第一个,因此除去了 \(\mathrm{sz_u}\) 的方案数。

接着再考虑把基环树森林的答案拼起来,可以发现各个基环树间操作顺序任意排列,因此就是多重集的排列数,最终的答案就是

\[\frac{n!}{\prod (\mathrm{SZ}_i!)}\times \prod f_i \]

时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)

http://www.gsyq.cn/news/60775.html

相关文章:

  • 数据采集第三次作业-102302128吴建良
  • 102302116_田自豪_作业3
  • 畅通工程 最小生成树
  • Oracle数据库物理备份与恢复实战指南
  • 实用指南:Kafka面试精讲 Day 30:Kafka面试真题解析与答题技巧
  • 有用的包 #Python
  • 2025 人事管理工具选型:不同方案优劣势测评,中小企业闭眼抄作业
  • 2025年大众途观L更换轮胎推荐:五大专业品牌最新推荐
  • 树上背包优化
  • 2025年11月十大效果图公司推荐榜单:用户口碑评价与性能参数对比
  • 2025年11月十大效果图公司推荐榜单:专业分析与权威评测对比
  • 2025 年 11 月高壓清洗服務廠家推薦排行榜,管道/下水道/污水管/市政管道高壓清洗,化糞池/隔油池/污水池專業清洗,家庭/商鋪/小區/工廠高效深度清潔首選!
  • 如何在C++中实现面向对象编程?
  • 最简单的畅通工程
  • 唯物辩证法3大观点11原理
  • 加盟稳赚?2025广东自习室加盟TOP5品牌及盈利方案
  • AI写论文方法全揭秘:轻松掌握高效论文写作技巧
  • 2025年11月最新出炉!南京装修公司推荐首推欧阅恒装 TOP5权威榜单
  • Hash求无向图的桥
  • 完整教程:【2025最全】国内AIPPT工具排行榜
  • 关于powershell中的-哈希表-Hashtable-类型-说明-类似于python中的字典
  • CSP-S2025 T4 员工招聘 题解
  • 2025 GEO优化公司排名权威榜单解读:浙江四家标杆企业凭何突围?
  • 写给0-1岁的初创公司合伙人(101):天使轮与种子轮融资的条件解锁机制
  • Mac Unity 2018.dmg游戏工具 安装步骤 简单易懂教程(附安装包)
  • 102302147傅乐宜作业3
  • 2025中小学生AI学习机选购核心:5大品牌实测,提分才是硬通货!
  • 深入解析:DNS解析原理及工作流程详解
  • 6000 AI Program Topic 3~6
  • 洛谷 P1908:逆序对 ← 树状数组 + 离散化(数组 + sort + STL map)