首页 > 其他分享 >CF513F2 题解

CF513F2 题解

时间:2023-01-05 13:33:43浏览次数:58  
标签:二分 le 格子 题解 times 棋子 alpha CF513F2

题意

传送门

有 \(a+b+1\) 个会动的棋子,在一个大小为 \(n\times m\) 的棋盘上,棋盘上有一些点有障碍。棋子中,有 \(a\) 个红色棋子,\(b\) 个蓝色棋子,和 \(1\) 个既能当作红棋子又能当作蓝棋子的通配棋子。

一个局面是好的,当且仅当对于每个格子,要么这个格子上没有棋子,要么这个格子上恰好存在一个红棋子与一个蓝棋子。

每个棋子有自己的初始位置 \((x_i,y_i)\) 和速度 \(t_i\),其中 \(t_i\) 表示自己走到相邻的格子所需要的时间。

你可以控制所有棋子的移动。请问最少多少时间后能达到处于一个好的局面。或输出无解。

\(1 \le n,m \le 22,0 \le a,b \le n \times m,1 \le t_i \le 10^9\)。

题解

首先 \(|a-b|=1\),否则无解。然后就变成 \(k\) 个红棋子与 \(k\) 个蓝棋子。

乍一看是二分图匹配。但实际上每个格子只能容纳一对棋子,故不能直接套用。

类似二分图,我们不难想到用网络流来解决这种匹配问题。因为每个棋子到任意格子的距离是已知的,故尝试二分答案。

首先将每个格子拆为入点和出点,其间连一条边。依次考虑红棋子 \(i\) 与格子 \(j\),如果 \(i\) 到 \(j\) 的时间不大于当前二分的 \(mid\),则从 \(i\) 连一条边到 \(j\) 的入点。同理,如果蓝棋子 \(i\) 到格子 \(j\) 的时间不大于 \(mid\),则从 \(j\) 的出点连一条边到 \(i\)。再从源点到所有红棋子连边,从所有蓝棋子到汇点连边。所有边的容量均为 \(1\)。跑最大流,判断其是否等于 \(k\) 即可。

这种做法的时间复杂度为 \(O(n^6 \log a)\),其中 \(a\) 为最大时间。显然不能通过。

发现瓶颈在于二分答案。因为网络流有一个很好的性质:往网络中加边,不必重构网络,直接跑就可以得出新的最大流。于是尝试另一种方式:对于所有连接棋子与格子的边,按照其时间从小到大加入。每加一条边跑一次最大流。则当最大流等于 \(k\) 时,加入的边的时间就是答案。复杂度为 \(O(n^4 \times n^4)=O(n^8)\)。

这样就有新的优化空间了。考虑将边分块:设有 \(t\) 条边,每 \(\sqrt t\) 条分为一组。每次加入一组并跑最大流。当最大流等于 \(k\) 时,再将这组的边重新一条条加入。这样的复杂度为 \(O(\sqrt{n^4} \times n^4)=O(n^6)\)。可以通过。

但实际上因为大常数,你还是会 TLE on test 87。解决办法是卡常,或者像我一样:分块套分块。设一个阈值 \(\alpha\),先将块长设为 \(t^{\alpha}\),等最大流等于 \(k\) 时,再将当前块分块,块长为 \(\displaystyle t^{\alpha^2}\)。则复杂度为 \(\displaystyle O((t^{1-\alpha}+t^{\alpha(1-\alpha)}+t^{\alpha^2})\times n^4)\),易知 \(\alpha=\frac{\sqrt5-1}{2}\),化简一下就是 \(n^{5.528}\)。可以通过。

标签:二分,le,格子,题解,times,棋子,alpha,CF513F2
From: https://www.cnblogs.com/FishJokes/p/17027292.html

相关文章

  • Codeforces Round #839 (Div. 3)题解
    C.DifferentDifferences(贪心)题意​ 给定\(k\),\(n\)\((2\lek\len\le40)\)。从\([1-n]\)中不重复地任选\(k\)个数组成一个数组,使这个数组的差分数组中不同的......
  • 【题解】CF700E Cool Slogans
    原题面很简洁,懒得概括了。思路后缀自动机+结论。这种题出题人没有十年脑血栓都没法出。结论1:\(s_{i-1}\)必定是\(s_i\)的后缀。考虑\(s_i\)中\(s_{i-1......
  • 【题解】CF1073G Yet Another LCP Problem
    题面很清楚,不概括了。思路后缀树+树剖。套路题。看到lcp考虑转化成后缀树上求lca,这里可以用SAM构造反串的parenttree解撅(f**kuukk)于是问题转化成:每次给......
  • 【题解】CF808E Selling Souvenirs
    题意多重背包,但数据范围很大并且体积小于等于三。思路乱搞。很自然地考虑将物品按照体积分成三类。显然对于同一类的物品从最大开始取最优,那么有一个贪心的想法。直......
  • 【题解】P5305 [GXOI/GZOI2019]旧词
    题面很清楚,不概括题意了。思路树剖。\(k=1\)的情况是P4211[LNOI2014]LCA具体来说,只需要\(\forall1\leqi\leqx\),将\(1\)到\(i\)的路径上每一个结点权值......
  • 题解 校内考20230104 T2 旗木双翼
    题目描述菲菲和牛牛在一块\(n\)行\(m\)列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。落子......
  • LOJ 数列分块入门 9 题解题报告
    LOJ数列分块入门9题解题报告\(\text{ByDaiRuiChen007}\)I.数列分块入门1题目大意\(\text{Link}\)维护一个长度为\(n\)的序列,支持区间加,单点查值思路分析简......
  • IntelliJ IDEA常见问题解决办法汇总
     mac上idea升级到2020.2.2后,发现versioncontrol中的localchanges不见了!解决办法:View—>ToolWIndows—>Commit【点击下,就会提示要把这个Commit放在IDEA面板那个位置,选择......
  • git 不区分大小写问题解决
    使用vscode   更改vue文件为大驼峰的方式 发现本地代码和提交时的代码名称不同是因为git不区分大小写这时我们需要找到代码存放位置 鼠标右键  GitBashHer......
  • 异地多活回环同步问题解决方案
    1.异地多活:一般为两地三中心或者三地五中心,这样设计是为了在发生单点故障或网络分区时,集群能继续提供服务。两地三中心可以容忍机房级别灾难,三地五中心可以容忍城市级别灾......