随笔分类 -  atcoder做题记录

摘要:本题的瓶颈在于如何处理重复的问题。 可以发现,如果我们将黑球数量的变化看作一条折线,我们算重的原因就在于在这条折线往上或往下平移一格时我们还会计算到这条折线,所以我们可以,只保留经过 $x$ 轴的折线(就是黑球数量在某一次操作后 $=0$)的答案,那么就不会算重了。 记 $f_{i,j}$ 表示前 阅读全文
posted @ 2022-11-25 16:57 Southern_Way 阅读(78) 评论(0) 推荐(0)
摘要:可以发现 $a_i \bigoplus b_i \bigoplus a_j \bigoplus b_j$ 为 $1$ 的位置,是 $a_i \bigoplus a_j$ 与 $b_i \bigoplus b_j$ 不同的位置。 设 $c_i = a_i \bigoplus b_i$,考虑根据上个性质 阅读全文
posted @ 2022-11-24 22:46 Southern_Way 阅读(37) 评论(0) 推荐(0)
摘要:题意见这篇博客 考虑 $f(x) = a + \lfloor \frac{x}{b} \rfloor$ $g(x)= c + \lfloor \frac{x}{d} \rfloor$ 这两个函数相等的条件。 不难发现如果 $f(x) = g(x)$ ($f'(x) = a + \frac{x}{b} 阅读全文
posted @ 2022-11-24 14:55 Southern_Way 阅读(31) 评论(0) 推荐(0)
摘要:首先考虑,怎么样操作最优? 不难发现我们应当先给序列排序,每次只会修改相邻两个数,因为如果跨过一个在这两个值之间的数,那么我们显然可以将操作传递过去,保证贡献为 $2x$ 且操作等价。 最终答案会怎么样呢? 不难发现每次操作不会影响这两个数和后面的数的差的和,那么总贡献就为 $$\frac{\Sig 阅读全文
posted @ 2022-11-24 14:42 Southern_Way 阅读(33) 评论(0) 推荐(0)
摘要:本题一眼状压 $DP$ 考虑设计一下状态。设 $dp_{S,t}$ 表示只考虑 $S$ 这一集合内的点,$1$ 到 $t$ 的路径上只有一条的最多能加上的边权。 设 $sum_S$ $=$ $\Sigma_{u,v \in S, u < v}w_{u,v}$ $$dp_{S \cup u,u} \l 阅读全文
posted @ 2022-11-14 13:17 Southern_Way 阅读(29) 评论(0) 推荐(0)
摘要:思路来源 我们发现一个人会先往左走,再往右走,我们可以发现在两人相遇的时候这两人转向相当于交换,所以我们不再需要考虑转向,只需要考虑一个人走过的路程。 然后可以在此基础上发现,一个人往左一个人往右,这两个路程的图像与坐标轴会形成一个三角形,并且如果这个三角形在中间,那么就必须要与另外一个三角形有交, 阅读全文
posted @ 2022-11-11 13:25 Southern_Way 阅读(40) 评论(0) 推荐(0)
摘要:首先有一个性质,每个点只有一条出边的图,每个联通块只能是基环树。那么有 $-1$ 的连通块就一定是树。 本题要求的是每种连边方案的联通块数量之和,把贡献拆开来算就可以转化为每个联通块在多少种方案之中出现。 记基环树的个数为 $x$, 树的个数为 $y$,第 $i$ 棵树的大小为 $sz_i$ 首先是 阅读全文
posted @ 2022-11-08 21:51 Southern_Way 阅读(42) 评论(0) 推荐(0)
摘要:发现 $A_i$ $B_i$ 的值很小,那么本题可能可以使用几何意义求解这个组合数。 对于一个组合数,其方案数的几何意义为 起点为$(0,0)$ 终点为 $(a_i+a_j,b_i+b_j)$ 的路径方案数。 将起点和终点同时平移得 起点为 $(-a_i,-b_i)$ 终点为 $(a_j,b_j)$ 阅读全文
posted @ 2022-11-07 20:02 Southern_Way 阅读(27) 评论(0) 推荐(0)
摘要:有一个显而易见的性质, 能追上的起点是一段连续的区间。 那么我们只需要考虑如何才能追上。 以路程为 $x$ 轴, 时间为 $y$ 轴, 那 $Alice$ 到达终点的时间是一定的,设为 $T$。 只需要考虑 $Bob$ 是否能在 $\leq T$ 的时间内到达终点。 考察一下 $Bob$ 的 $y$ 阅读全文
posted @ 2022-11-07 19:45 Southern_Way 阅读(69) 评论(0) 推荐(0)
摘要:有一种显然的想法:我们要考虑对每段操作中保留下来的数。但是这并不好做。 正难则反:我们只需要关注删除掉的数。 那么我们就需要得知删除每个数时的限制,这等价于求每个删除操作之前保留了多少数。 具体地,记 $f_{i,j}$ 表示删除第 $i$ 个数,前 $i$ 个数共删除了 $j$ 个的方案数。那么我 阅读全文
posted @ 2022-11-07 12:03 Southern_Way 阅读(63) 评论(0) 推荐(0)
摘要:本文思路基本来自于这篇题解 在一个数轴上有 $n$ 个 robot 和 $m$ 个 exit。 每次操作可以把所有 robot 同时向左或向右,所有 robot 都到过 exit 之后停止操作。 求 robot 从 exit 溜走的方案数,两个方案不同当且仅当有一个 robot 从不同的 exit 阅读全文
posted @ 2022-11-03 15:12 Southern_Way 阅读(41) 评论(0) 推荐(0)
摘要:由于期望的线性性,并且这个坏点的问题看上去不是很好处理,那么我们不妨想一想每个点会被涂黑多少次。 很显然一个点会被涂黑的次数可以移到链上考虑,并且深度大于这个点的点都不需要考虑。 我们可以看作在涂满之前随便选择,而不去考虑最长的涂黑前缀,为什么呢? 因为我们如果选择了一个最长涂黑前缀上的点,是对答案 阅读全文
posted @ 2022-10-28 19:20 Southern_Way 阅读(55) 评论(0) 推荐(0)
摘要:本题并不难, 难点在于一个类似于正难则反的性质。 考虑将所有点黑白染色,容易发现,我们删除两个点时不会使其他的点的黑白色发生变化,并且我们删除的每个子串必然跨过黑白两格,所以我们可以发现在这种条件下不能删除 $AB$ $BA$ 和 不能删除 $AA$ $BB$ 本质相同(把白色位上的所有 $A$ $ 阅读全文
posted @ 2022-10-26 21:09 Southern_Way 阅读(32) 评论(0) 推荐(0)
摘要:考虑倒推,最后一条被替换的边,一定本身就是红树上的边,然后这个时候这条边两边的联通块一定已经处理好了。 然后我们不难发现,所有连边操作本质都可以归为重边操作,并且连通性不变。 启发式合并即可。 #include<bits/stdc++.h> #define RG register #define L 阅读全文
posted @ 2022-10-26 20:57 Southern_Way 阅读(26) 评论(0) 推荐(0)
摘要:考虑转换题目给出的条件。 可以观察到一些性质 若某个矩形能被操作为全 $1$ ,那么其任意子矩形也一定可以。 任意行列交换不影响矩阵是否能变为全 $1$ 然后重要的来了 任选位置 $[x,y]$ 强制使 $A[x,y]$ 变为 $1$, 不是则取反整个矩阵。然后查看第 $x$ 行第 $y$ 列,若有 阅读全文
posted @ 2022-10-23 10:08 Southern_Way 阅读(44) 评论(0) 推荐(0)
摘要:考虑把题目给的限制关系建为一棵树,则问题变为每次选择一棵子树,消耗 $\Sigma$$m_i$ ,造出 $sz_i$ 个物品,每个物品至多选择限制 ($D_i$) 次。 然后考虑这就是一个多重背包问题,重量为 $wi$$=$$\Sigma$$mi$ ,价值 $vi=sz_i$ 。 算法瓶颈在于 $D 阅读全文
posted @ 2022-10-19 10:05 Southern_Way 阅读(41) 评论(0) 推荐(0)