摘要: 分析: 若 $s \& t = 0$,则肯定每一位是独立的,考虑第 $i$ 位: $s_i = 0$,则 $t_i$ 可以为 $0$ 或 $1$; $s_i = 1$,则 $t_i$ 必须为 $0$。 考虑把 $s_i$ 的 $0,1$ 对换: $s_i = 1$,则 $t_i$ 可以为 $0$ 或 阅读全文
posted @ 2022-03-29 16:51 wangzhongyuan 阅读(15) 评论(0) 推荐(0)
摘要: 首先联想到最短路, 以每个转折点为顶点,两两连一条边,再加上起点与终点,就可以了。 但这样边数至少有 $O(m^2)$,会爆炸, 考虑优化:我们直连一个点与它上下左右相邻最近的点就行了, 举个例子: 有三个转折点:$A(1, 2)$,$B (3, 3)$,$C (4, 7)$,要从 $A$ 走到 $ 阅读全文
posted @ 2022-03-09 16:54 wangzhongyuan 阅读(25) 评论(0) 推荐(0)
摘要: 跑两遍最短路。 设 $dis_{i,j}$ 表示从 $i$ 走到 $j$ 的最短路径,注意这里不是乘车。 对于每一个在 $i$ 位置的司机, 如果 $dis_{i,j} \leq t_i$,则 $i$ 司机就可以从 $i$ 开到 $j$,花费为 $c_i$, 我们就再建一个图,若能乘车从 $i$ 到 阅读全文
posted @ 2022-03-01 15:18 wangzhongyuan 阅读(8) 评论(0) 推荐(0)
摘要: 若有序,必须单增。 设前 $i$ 个的最大值为 $pre_i$,后 $i$ 个的最小值为 $suf_i$, 若要使得有序,满足操作后 $a_{len}$ 与 $a_{len+1}$ 有序,即 $a_{len} < a_{len+1}$, 而操作后,$a_{len}$ 是前 $len$ 的最大值,$a 阅读全文
posted @ 2022-02-13 12:34 wangzhongyuan 阅读(16) 评论(0) 推荐(0)
摘要: 通过打表,我们可以发现,每个数只要换最后一个就行了。 #include <cstdio> #include <iostream> using namespace std; int main() { int T; scanf ("%d", &T); while (T --) { int x; scan 阅读全文
posted @ 2022-02-04 15:08 wangzhongyuan 阅读(8) 评论(0) 推荐(0)
摘要: 因为题意是由后面复制到前面,那我们就从后往前考虑, 假设最后数组中全是 $x$, 因为最后一个数没有其他数能复制到它,所以 $x = a[n]$, 那我们做如下操作: 每次我们就找到末尾最长的全为 $a[n]$ 的串,设其长度为 $k$, 然后选 $n - 2k + 1 \sim n$,即将 $n 阅读全文
posted @ 2022-02-04 15:02 wangzhongyuan 阅读(10) 评论(0) 推荐(0)
摘要: 显然,每个 $i$ 最多交换一次, 且 $\max (max (a_1,a_2,\cdots,a_n),max (b_1,b_2,\cdots,b_n))$ 是不变的, 有对称性,不妨设两数中的最大值为 $b_i$ 中的最大值, 所以我们就让 $a_i$ 中的最大值越小越好,也就是让每个数尽量小, 阅读全文
posted @ 2022-02-04 14:41 wangzhongyuan 阅读(8) 评论(0) 推荐(0)
摘要: 思路分析 首先我们设 $c(i)$ 为在 $i$ 的二进制表示下,按位取反的结果, 例如:$c(50) = c((110010)_2) = (001101)_2 = 13$, 显然 $c(i) = (n - 1) - i$, 因为 $c(i)$ 是 $i$ 按位取反的结果,所以 $c(i) \& i 阅读全文
posted @ 2022-01-28 12:02 wangzhongyuan 阅读(15) 评论(0) 推荐(0)
摘要: 回顾 首先我们先回顾一下简单版: 设 $dp[i][j]$ 表示 $i$ 次操作,至少有 $j$ 次要加 $t$ 首先加一下初始化: $dp[i][0] = 0$,即当要加 $0$ 次时,Bob 一定会狂减,那 Alice 每次选 $0$ 最优 $dp[i][i] = i \times k$,即 B 阅读全文
posted @ 2022-01-27 22:11 wangzhongyuan 阅读(16) 评论(0) 推荐(0)
摘要: 设 $dp[i][j]$ 表示 $i$ 次操作,至少有 $j$ 次要加 $t$ 首先加一下初始化: $dp[i][0] = 0$,即当要加 $0$ 次时,Bob 一定会狂减,那 Alice 每次选 $0$ 最优 $dp[i][i] = i \times k$,即 Bob 要全加,那 Alice 每次 阅读全文
posted @ 2022-01-27 16:19 wangzhongyuan 阅读(13) 评论(0) 推荐(0)