NOIP2023模拟测试赛(二十八)
你也许也意识到了这件事,旅船是掩盖未来的虚像,战车正指引着我们的命运,硬币抛出之后,正逆的转换从未停止。前方是毁灭亦是重生。
T1 也许(may)
鬼畜的暴力。
对每个面进行 dfs,找到一个没有标记颜色的方块或者标记了相同颜色的方块则停止。
如果找到了不同颜色的方块,就代表此方块不能存在,删除,然后朝被标记这个方块颜色的几个面再次 dfs。
如果最终有颜色的面对应方块条为空,则 -1。
T2 意识(realize)
高斯消元
四个颜色 WRYB 分别对应 0123
mix 就变成异或和。
考虑 RY RB YB 怎么办。
拆位,当前颜色为 a1a0,RY 转化为 swap(a1 a0),RB 转化为 a1 ^= a0,YB 转化为 a0 ^= a1。
bitset 加速,\(O(\dfrac{n^2q}{w})\)
T3 硬币(coin)
首先随便打几个点模拟一下,然后发现最终一个连通块一定是一段区间,并且包含值域上一段相邻的点。
连通块之间区间不相交,值域区间也不相交。
转化为查询左边最小值大于右边最大值的分割的个数。
我们将相邻的两个数 \(a_i\) 与 \(a_{i-1}\) 之间在值域上的一个半闭半开区间 \((a_i, a_{i-1}]\),区间加一。(值更大的一端闭。
此时会发现最终的分割点右边的最大值一定只被加了一遍。
就变成区间加,区间统计 =1 的个数。
直接统计 =1 不好统计,可以转化为统计最小值以及最小值出现次数(因为最小值不会比 1 更小)
最左端 \(a_0\) 要设成正无穷,最右端 \(a_{n+1}\) 设成负无穷
浙公网安备 33010602011771号