摘要:
题意: 数有$N$个节点,根编号为$1$,一根树枝连接两个编号,树枝上有一定数量的苹果,给定需要保留的边数,求最多能留住多少苹果。 思路: 树形$DP$ + 有依赖的背包问题 看成有依赖的背包问题:f[u][j]就表示以$u$为根节点的子树,选$j$条边的最大价值。 那么转移方程:\(f[u][j] 阅读全文
摘要:
原题:D - Integers Have Friends 题意: 给定一个数组,求一个最长子数组满足$a_i ,, mod ,, m ,, = ,, a_{i + 1} ,, mod ,, m = ... ,, = ,, a_j ,,mod,, m ,,(m \geq 2)$ 求其最长长度。 根据同 阅读全文
摘要:
题意: 给定一个$n$个数得序列$a_i$,给定$m$个询问,每次给出一个$k$,寻找有多少个区间$[l, r]$中最大值与最小值之差严格大于$k$。 思路: 可以发现,如果已经知道一个区间最大值与最小值严格大于k之后,那么我们便可以往从两头这个区间随意加数并且会对答案有贡献: 如果加一个比最大值大 阅读全文
摘要:
应用倍增的思想,主要用来解决区间最值问题,可以做到$O(NlogN)$预处理,$O(1)$查询,相比于线段树代码更短,但是不支持修改,是静态数据结构,本质就是一个动态规划。 设$f(i,j)$表示起点为$i$,区间大小为$2^j$的最大值,即区间$[i, i + 2^j - 1]$里的最大值,那么边 阅读全文
摘要:
求出$a$的差分序列$b$,其中$b_1 = a_1, b_2 = a_2 - a_1, ... b_n = a_n - a_{n - 1}$ 根据题意以及公式可以发现,如果我们想让序列所有的数都一样,那么就是让$b_2, b_3, ... b_n$所有的数全为$0$,而$b_1 = a_1$,即$ 阅读全文
摘要:
原本是一个差分约束的问题,但是由于数据过大可能导致$spfa$被卡,而由于这道题的边权只有$0,1$两种,比较特殊,所以使用$tarjan$求连通分量,缩点,递推的方式也能完成,时间复杂度是线性的。 用差分约束的思路根据不等式建图,然后从$0$号节点开始求单源最长路,若图中存在正环那么无解。否则,从 阅读全文
摘要:
题意 两个企鹅,一个从地图的右下角走右上角,一个从另一个地图的左下角走到左上角,我们操控左边的企鹅,右边的企鹅与左边企鹅运动规则如下。 左边企鹅向左,右边企鹅向右 左边企鹅向右,右边企鹅向左 左边企鹅向上,右边企鹅向上 左边企鹅向下,右边企鹅向下 与此同时,如果左右企鹅遇到了障碍,或者遇到了越界情况 阅读全文
摘要:
题目大概 有两堆石子,有两个人拿,一个人从一堆中拿$k$个,那么就必须从另一堆中拿$s*k$个,Alice先拿,问是否必赢。 解题: 数据不大,看到前$20$名队伍没有推结论做的。。除了打表就是暴力,其实打表还是暴力,但是打1000多行的表也太恐怖了吧。。暴力就是暴力处理每一种状态下$SG$所有情况 阅读全文
摘要:
与普通$NIM$游戏不同的地方是限制了每次拿东西的个数,这个个数会给定在集合$S$中,也就是说每次拿的数量只能在集合$S$中。 现在就可以把每一堆石子看成是一个有向图了,最主要就是用记忆化搜索来计算每一堆石子的$SG$函数,然后用定理判断即可。 #include <iostream> #includ 阅读全文
摘要:
参考自《算法竞赛进阶指南》 $NIM$博弈: $n$堆物品,第$i$堆物品有$A_i$个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品的人获胜。假设两人每一步都必然采取最优的策略。问先手是否必胜。 定理: 若先手必赢,那么当且仅当满足:\(A_1 阅读全文