搜索
mayaohua2003
这个作者很懒,什么都没留下…
展开
-
Codeforces gym 100269 I
比较恶心的搜索题。首先翻转操作至多用一次,且只有用和不用的区别,于是可以枚举是否使用。可以发现行和列的排列是无关的,且分别有646^464种。而数字的交换相当于允许任意排列,可以考虑最小表示法。这样一个算法就很明显了,我们直接对于每个数独,枚举它是否进行翻转操作,以及行和列的排列,最后求出得到的新数独的最小表示尝试匹配。但是这样复杂度有点高。由于操作是可逆的,容易发现可以用meet in middle来优化,对于一个数独我们枚举它是否进行翻转以及行的排列,得到一个中间状态,对于另一个数独我们枚举它做列原创 2020-12-25 21:36:32 · 194 阅读 · 0 评论 -
Codeforces gym 100851 H
由于对称性,我们可以假设任意一个′x′'x'′x′作为t=0t=0t=0对应的立方体,以及任意确定方向,并给它的顶点标上坐标。然后我们考虑从这个立方体开始逐渐确定其他的立方体代表的是哪个,这是容易做到的:我们如果已经确定了一个正方体顶点对应的坐标,那么考虑它的六个面,若某个面与另一个正方体相连,我们相当于知道了那个正方体其中四个顶点的坐标,另外四个是相对的,容易确定。如果确定的过程中发现冲突,也即两个正方体代表的相同,显然就无解了。时间复杂度为O(1)\mathcal O(1)O(1)。#includ原创 2020-12-24 12:31:23 · 187 阅读 · 0 评论 -
Codeforces Round 1320 简要题解
A. Journey Planning略B. Navigation System略C. World of Darkraft: Battle for Azathoth略D. Reachable Strings注意到操作是可逆的,于是可以考虑将两个串分别操作到终态,判断终态是否相同。显然如果′0′'0'′0′的个数不相同一定非法,否则考虑每次操作后,′0′'0'′0′的位置的奇偶性不变,...原创 2020-04-29 12:42:14 · 392 阅读 · 0 评论 -
Codeforces 666D
考虑枚举正方形顶点与四个点的对应关系,以及每个点是横向移动还是纵向移动。这样得到了对角线关系后,由于一条边的两个端点满足横坐标或纵坐标相同,我们就可以知道一些正方形横纵坐标的相关信息了。这里有一个特殊情况,有可能两个横坐标已知,而两个纵坐标均未知,此时两个纵坐标之间的距离确定。此时四个点均横向移动,因此纵坐标取值没有限制,我们需要得到最小移动距离,可以平移其中两个点的坐标,然后变为四个点移动到同...原创 2020-03-05 12:33:55 · 223 阅读 · 0 评论 -
Codeforces 698D
考虑枚举一个怪物xxx能不能被石头yyy射到,那么我们发现xxx到yyy之间连线上的其他怪物要先被干掉,继续搜索下去,但是胡乱爆搜的话很不可过。有一个神秘的做法,我们给每个怪物枚举射过来的k!k!k!种排列,按bfs或dfs的顺序扩展要干掉的怪物,每搜到一个怪物的时候就钦定由排列对应位置上的石头射到它,如果扩展出来的石头数目不超过kkk就合法。这样为什么是对的呢?注意到如果存在一个合法的解,对...原创 2019-11-23 21:48:22 · 183 阅读 · 0 评论