260301 模拟赛
T1
你有一个 \(n\times m\) 的网格图,有 \(n\) 行格子和 \(m\) 列格子。你需要在每个格子中填入以下四种图案之一,使得:
- 每条曲线都是单一颜色;
- 不存在闭合曲线;
有 \(q\) 次操作,每次操作形如限制某个格子必须填某个图案,或者删除之前的某个限制。请你在最开始以及每次操作之后回答,填满其它格子的方案数。
\(n,m\le 10^9,~q\le 2\times 10^5\)
首先注意到确定第一行以后,下面的每一行要么和第一行相同,要么和第一行相反。注意到所有行不完全相同,并且所以列也不完全相同只有一种情况:
没办法画很好所以凑合理解一下,可以自己手玩。所以我们容易得出没有限制的方案数:\(2(2^n+2^m-2+(n-1)(m-1))\)。
考虑只有加入限制的操作怎么做,然后可以直接线段树分治。首先我们引入了颜色的限制,我们先给 \([1,4]\) 减一变成 0-index 的 \([0,3]\),然后给 \(i\oplus j\) 为奇数的位置的颜色异或上 \(2\)。这样就可以用 \(4\) 个哈希表维护所有行相等和所有列相等分别 \(2\) 种总共 \(4\) 种情况。然后全相等也可以简单维护。然后对于上面示意图的那种情况只需维护中心点的取值矩阵即可,中间的四个点在进行完变换之后还有两种情况,应该是
随便维护即可。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | |
T3
给定一个边仙人掌(任意一条边至多只在一个简单环中)和常数 \(k\),放置最少的关键点覆盖整个仙人掌,一个关键点可以覆盖它 \(k\) 邻域内的所有点。
\(n\le 4\times 10^6\)
如果是树那肯定就是经典贪心了。考虑搬上仙人掌,如果发现一个环上必须要放置关键点,那就把所有子树产生的需求区间(即要求这个区间内放置至少一个点)分成两类:和父亲割点有交的,没交的。对第二类跑一遍最小点覆盖,然后尝试覆盖一些第一类点,最大化本子树在父亲那里的需求区间半径(区间半径显然是越大越好)。
具体的,先扫两遍环,把子树之间的贡献处理掉。然后容易通过一遍预处理,来移动最小点覆盖最左边那个点,动态求出最右边那个点的位置。没被覆盖的第一类区间形成一个滑窗,用单调队列维护即可。时间复杂度线性。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | |
