专栏文章

题解:CF2097B Baggage Claim

CF2097B题解参与者 4已保存评论 4

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
4 条
当前快照
1 份
快照标识符
@mipgrfj6
此快照首次捕获于
2025/12/03 11:45
3 个月前
此快照最后确认于
2025/12/03 11:45
3 个月前
查看原文
某梦姓机构在模拟赛中出过几乎一模一样的,怎么现在还是不会做呢?
首先如果存在相邻两个点(p2i1,p2i+1p_{2i-1},p_{2i+1})的曼哈顿距离不是 22,直接输出 00 结束了。然后我们考察这两个点中间的点是啥。
  1. 如果这两个点的横坐标相同或纵坐标相同,那么中间这个点是唯一确定的。
  2. 否则,这两个点一定横纵坐标都相差 11。那么中间这个点是有两种情况的。
我们给所有可能成为中间的点编号(就是离散化)。得到两个数组 ai,bia_i,b_i,表示 p2i1,p2i+1p_{2i-1},p_{2i+1} 这两个点中间的点编号一定是 aia_ibib_i。当然如果是左图的情况则 ai=bia_i=b_i
现在问题变成了,对于每个 ii,选择 ai,bia_i,b_i 中的恰好一个数,使得选出的 nn 个数互不相同,求方案数。这样的答案再除以 22 的第一种情况数次幂就是真正答案。
这个咋做呢?
首先考虑二分图。我们连边 iai+n,ibi+ni \to a_i+n,i \to b_i+n。然后答案是这张二分图的完美匹配方案数。显然我们没有解决 NPC 问题的能力。
既然是两个点,我们考虑建无向图 aibia_i - b_i。那么怎么体现两个点只能选一个,且这个点在全局只能选一次呢?
考虑转化成一个给无向图的边定向的问题。具体的,如果我们给这条边定向为 aibia_i \to b_i,则表示这个位置选 bib_i。同理,如果是 aibia_i \gets b_i,表示这个位置选 aia_i。那么一个点至多被选一次,等价于一个点的入度 1\le 1
我们考虑对图中每个连痛块单独计数。最后乘起来即可。
我们考虑这个连通块中的点数 nn 和边数 mm注意可能有自环。显然因为联通所以 mn1m \ge n - 1
  • m=n1m = n - 1,是一颗树。显然一定存在一个点的入度为 00。枚举这个点,发现剩下的边的方向都确定了。所以答案为 nn
  • m=nm=n,基环树。中间的环有两种定向方案,除非中间是个自环(此时是 11)。剩下的边的方向也确定了。所以答案为 1122
  • m>nm > n:注意到所有点的入度和为 mm。根据鸽巢原理,一定有一个点的入度 >1> 1。答案为 00
那你不就做完了。

评论

4 条评论,欢迎与作者交流。

正在加载评论...