2022-2023 ICPC, NERC, Northern Eurasia Onsite 题解

Cxny

瞎胡几个题。只写了一道。被队友带飞。

持续更新(?)中。

F. Football

两队踢了 场比赛,告诉你其中一队赢输球数 ,问最少几场平局,并给出方案。

特判一下。其他情况容易构造出平局数为 的方案。

E. Easy Assembly

个方块堆成的塔,每一块上写有数字,数字各不相同。一次操作可以将一个塔从中间分成两个,或者将一个塔放到另一个塔的上面。现在需要用所有方块叠出数字从上到下递增的塔。问总操作次数最小的情况下需要进行两种操作分别几次。

贪心,把每个塔拆开再合并回去。稍加计算即可。

A. Amazing Trick

给定排列 ,构造两个排列 使得 。或报告无解。

发现若确定中间状态就可以确定排列 。而为了满足限制,中间状态 需要满足

必定无解。 各有一种情况无解。

对于剩下的情况,考虑对值和位置建出二分图。每个位置有不超过两个限制,因此每个点度数

根据 定理可以证明,此时一定有解。

感性理解,这样的排列 有很多。直接随即可。

I. Interactive Factorial Guessing

交互,每次可以询问 位上的值。在不超过 次询问内找出

预处理出 的阶乘,每次询问信息熵最大的即可。需要手打出第一层的决策树。

K. King’s Puzzle

给定 ,构造一张 个点的无向简单连通图使得图上的点恰好有 种不同度数。

点度数最大为 ,所以 显然无解。尝试直接构造出 的情况。

可以构造两个度数分别为 的点两个点之间连边。剩下的就是 的子问题。

对于 ,在度数为 的点外再接一条链即可。

需要特判。

B. BinCoin

有一棵二叉树,每个节点只有 个儿子。给定这棵树的 随机访问的中序遍历,还原这棵树的结构,或报告无解。

考虑如何找到根。对于根,中序遍历的左右两侧分别是其两棵子树,其点集在 的中序遍历中应该完全相同。维护集合哈希值即可维护。

找到根之后,对左右两半递归下去做就行了。

D. Dominoes

的网格,有些位置是障碍。问有多少种将两个空格变成障碍的方式,使得无法使用 的骨牌将网格填满。保证初始状态能被填满。输出方案数向 的结果。

典中典。

经典结论:黑白网格数相同是可以被填充的必要条件。因此,同时填充两个黑格或白格之后一定无解。

此时若方案数仍 ,则有空格数

再考虑经典做法。对相邻的黑格和白格连边,有完美匹配是有解的充要条件。

下面设二分图左部和右部各有 个结点。由于初始状态有解,该二分图有完美匹配。

考虑去掉左部的每一个点。此时的最大匹配一定是 。若右部的某一个点必定在最大匹配上,那么删去这个点后不存在完美匹配。

之后的做法就和二分图博弈差不多了。网络流,从汇点沿 边跑 dfs,搜到的点一定在最大匹配上。

H. Hot and Cold

接下来的题就没有场切了。

的网格中有一个点是宝藏。交互,每次可以访问一个点,可以得到“找到了!”或者与上一个点相比到宝藏的距离是更近还是更远。你并不懂当地语言,不知道回答到底是哪一种,但可以分辨“找到了!”。你需要在 次询问内找到宝藏。

先考虑知道更近还是更远应该怎么做。可以每次询问一个 形,这样就可以使横纵坐标分别缩小一半。

再考虑如何得到更近更远所对应的字符串。

很蠢的事情是,询问 就能找到哪个是更远。因为 几乎一定更远,除非答案是 ,或者答案在 ,而这种情况会收到两个相同的答复。Link

然后就做完了。询问次数卡的很死。

  • Post title:2022-2023 ICPC, NERC, Northern Eurasia Onsite 题解
  • Post author:Cxny
  • Create time:2022-12-08 08:08:04
  • Post link:https://cxny.github.io/2022/12/08/2022-2023ICPC-NERC-NorthernEurasiaOnsite/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.