01 2015 档案
摘要:题目链接:BZOJ - 1081备注:此题BZOJ上貌似没有 spj ,要把一般顺序的每个格雷码倒着输出...比如 0102 输出为 2010题目分析就是按照 Gray 码的生成方法写前几个出来找找规律就好了。生成方法:以 3 位 3 进制为例0 0 00 0 10 0 20 1 2 //中位写 1...
阅读全文
摘要:题目链接:BZOJ - 1048题目分析感觉这种分割矩阵之类的题目很多都是这样子的。方差中用到的平均数是可以直接算出来的,然后记忆化搜索 Solve(x, xx, y, yy, k) 表示横坐标范围 [x, xx], 纵坐标范围 [y, yy] 的矩阵切成 k 块的最小 sigma((Vi - Av...
阅读全文
摘要:题目链接:BZOJ - 1055题目分析这种类似区间 DP 的记忆化搜索都是很相近的,比如字符串压缩和字符串扩展都差不多。都是将现在 Solve 的区间分成子区间,再求解子区间。这道题 Solve(l, r, x) 求能否将 [l, r] 的区间还原成 x ,那么就将它分成两段,看是否能左段变成 p...
阅读全文
摘要:题目链接:BZOJ - 1068题目分析这种记忆化搜索(区间 DP) 之前就做过类似的,也是字符串压缩问题,不过这道题稍微复杂一些。需要注意如果某一段是 S1S1 重复,那么可以变成 M + Solve(S1) + R ,不过这个 Solve(S1) 中不能在中间有 M ,否则后面的 R 向前找到的...
阅读全文
摘要:题目链接:BZOJ - 3791题目分析一个性质:将一个序列染色 k 次,每次染连续的一段,最多将序列染成 2k-1 段不同的颜色。那么就可以 DP 了,f[i][j][0|1] 表示到第 i 个位置,染了 j 段,当前这一段颜色为 0|1 的最大价值。f[i][][] 只与 f[i-1][][] ...
阅读全文
摘要:题目链接:BZOJ - 1801题目分析对于50%的数据是可以直接状压 DP 的。对于100%的数据,使用递推的 DP 。(或者这只叫递推不叫 DP ?)可以发现,每一行和每一列的棋子个数不能超过 2 个。用 f[i][j][k] 表示前 i 行,有 j 列有 1 个棋子,有 k 列有 2 个棋子的...
阅读全文
摘要:题目链接:BZOJ - 1188题目分析我们把每一颗石子看做一个单个的游戏,它的 SG 值取决于它的位置。对于一颗在 i 位置的石子,根据游戏规则,它的后继状态就是枚举符合条件的 j, k。然后后继状态就是 j 与 k 这两个游戏的和。游戏的和的 SG 值就是几个单一游戏的 SG 值的异或和。那么还...
阅读全文
摘要:题目链接:BZOJ - 1874题目分析这个是一种组合游戏,是许多单个SG游戏的和。就是指,总的游戏由许多单个SG游戏组合而成,每个SG游戏(也就是每一堆石子)之间互不干扰,每次从所有的单个游戏中选一个进行决策,如果所有单个游戏都无法决策,游戏失败。有一个结论,SG(A + B + C ... ) ...
阅读全文
摘要:题目链接:BZOJ - 2326题目分析数据范围达到了 10^18 ,显然需要矩阵乘法了!可以发现,向数字尾部添加一个数字 x 的过程就是 Num = Num * 10^k + x 。其中 k 是 x 的位数。那么位数相同的数字用矩阵乘法处理就可以了。[Num, x, 1] * [10^k, 0, ...
阅读全文
摘要:题目链接:BZOJ - 2007题目分析首先,左上角的高度是 0 ,右下角的高度是 1。那么所有点的高度一定要在 0 与 1 之间。然而选取 [0, 1] 的任何一个实数,都可以用整数 0 或 1 来替换,获得同样的效果。虽然输出的答案要求是四舍五入到整数,但其实答案就是一个整数!那么高度就一定是 ...
阅读全文
摘要:题目链接:BZOJ - 1257题目分析首先, a % b = a - (a/b) * b,那么答案就是 sigma(k % i) = n * k - sigma(k / i) * i (1 = sqrtk 时, k / i #include #include #include #include...
阅读全文
摘要:题目链接:BZOJ - 3207题目分析先使用Hash,把每个长度为 k 的序列转为一个整数,然后题目就转化为了询问某个区间内有没有整数 x 。这一步可以使用可持久化线段树来做,虽然感觉可以有更简单的做法,但是我没有什么想法...代码#include #include #include #inclu...
阅读全文
摘要:题目链接:BZOJ - 1046题目分析先倒着做最长下降子序列,求出 f[i],即以 i 为起点向后的最长上升子序列长度。注意题目要求的是 xi 的字典序最小,不是数值!如果输入的 l 大于最长上升子序列长度,输出 Impossible。否则,从 1 向 n 枚举,贪心,如果 f[i] >= l,就...
阅读全文
摘要:题目链接:BZOJ - 1816题目分析答案具有可以二分的性质,所以可以二分答案。验证一个答案 x 是否可行,就累加一下各种牌相对于 x 还缺少的量,如果总和超过了 x 或 m ,就不可行。因为,当使用的joker小于等于 x 时,才可以通过合适地安排顺序使得每组牌中至多有一张 joker 。代码#...
阅读全文
摘要:题目链接:BZOJ - 1303题目分析首先,找到 b 的位置 Pos, 然后将数列中小于 b 的值赋为 -1 ,大于 b 的值赋为 1 。从 b 向左扩展,不断算 Sum[i, b - 1] ,然后将 Cnt[Sum[i, b - 1]] 加一,这样就算出每个左边的Sum值有多少个了。然后从 b ...
阅读全文
摘要:题目链接:BZOJ - 1207题目分析每一次打鼹鼠一定是从上一次打某只鼹鼠转移过来的,从打第 j 只鼹鼠能不能转移到打第 i 只鼹鼠,算一下曼哈顿距离和时间差就知道了。那么就有一个 DP ,用 f[i] 表示打完第 i 只鼹鼠时最多打了多少只鼹鼠,然后 f[i] 可以由 f[1] .. f[i-1...
阅读全文
摘要:题目链接:BZOJ - 2463题目分析这道题的题解是,由于两人都采取最优策略,所以最后一定所有格子都会被走到。(Why..表示不懂..哪位神犇可以给我讲一下QAQ)Upd:半群的神犇告诉我,并不是说所有格子都会被走到,而是这个是一个二分图,当点数为偶数的时候,存在完备匹配。但是还是不明白的说0.0...
阅读全文
摘要:题目链接:BZOJ - 2724题目分析这道题和 BZOJ-2821 作诗 那道题几乎是一样的,就是直接分块,每块大小 sqrt(n) ,然后将数字按照数值为第一关键字,位置为第二关键字排序,方便之后二分查找某个值在某个区间内出现的次数。预处理出 f[i][j] 即从第 i 块到第 j 块的答案。对...
阅读全文
摘要:题目链接: BZOJ - 3236 BZOJ - 3809算法一:莫队首先,单纯的莫队算法是很好想的,就是用普通的第一关键字为 l 所在块,第二关键字为 r 的莫队。这样每次端点移动添加或删除一个数字,用树状数组维护所求的信息就是很容易的。由于这里有 logn复杂度,所以这样移动端点的复杂度还是挺高...
阅读全文
摘要:题目链接:BZOJ - 2821题目分析因为强制在线了,所以无法用莫队..可以使用分块来做。做法是,将 n 个数分成 n/x 个块,每个块大小为 x 。先预处理出 f[i][j] ,表示从第 i 个块到第 j 个块的出现次数为偶数的数的个数。这个复杂度是 n * (n / x) 的。然后把数与位置存...
阅读全文
摘要:以下内容是看了Matrix67的关于二进制的blog(Link)的一点总结与摘录。Gray码,中文“格雷码”,是一种特殊的编码,相邻两个格雷码的二进制表示中有且仅有一位不同,且 n 阶 Gray 码是 0~2^n-1 的一个排列。n 阶 Gray 码可以由 n-1 阶 Gray 码镜像翻转之后最前面...
阅读全文
摘要:题目链接: BZOJ - 2350题目分析因为存在一个 2/3 n 大小的团,所以不在这个团中的点最多 1/3 n 个。牺牲一些团内的点,每次让一个团内的点与一个不在团内的点抵消删除,最多牺牲 1/3 n 个团内的点,至少剩余一个 1/3 n 的团。如果两个点之间没有边,那么至少有一个点在团外,删掉...
阅读全文
摘要:题目链接: BZOJ - 1033题目分析模拟!纯粹按照题目描述模拟!这是一道喜闻乐见的经典模拟题!我一共写了2遍,Debug 历时2天的所有晚自习 ... 时间超过 8h ... 我真是太弱了啊 ...最终对着数据和 std 终于找到错误了!错误:好好读题!不要忽略题意中的细节!在函数中提前退出的...
阅读全文
摘要:题目链接: BZOJ - 3209题目大意设 f(x) 为 x 的二进制表示中 1 的个数。给定 n ,求∏ f(i) (1 #include #include #include #include #include using namespace std;typedef long long LL...
阅读全文
摘要:题目链接:CF#286 - A这场CF就这样爆零了...我真是太蒟蒻了...题目分析比赛的时候看到A题就发现不会,之后一直也没想出来,于是就弃了,还好不提交也不掉Rating...比赛后看评论,看到有人说“I could not even solve the problem A, shame on ...
阅读全文
摘要:题目链接:BZOJ - 1833题目分析数位DP ..用 f[i][j][k] 表示第 i 位是 j 的 i 位数共有多少个数码 k 。然后差分询问...Get()中注意一下,如果固定了第 i 位,这一位是 t ,那么数码 t 的答案是要加一个值的(见代码)。代码#include #include ...
阅读全文
摘要:题目链接:BZOJ - 1026题目分析这道题是一道数位DP的基础题,对于完全不会数位DP的我来说也是难题..对于询问 [a,b] 的区间的答案,我们对询问进行差分,求 [0,b] - [0,a-1] 的答案。这样就化繁为简了。具体过程见代码中的注释。代码#include #include #inc...
阅读全文
摘要:题目链接: BZOJ - 3626题目分析考虑这样的等价问题,如果我们把一个点 x 到 Root 的路径上每个点的权值赋为 1 ,其余点的权值为 0,那么从 LCA(x, y) 的 Depth 就是从 y 到 Root 的路径上的点权和。这个方法是可以叠加的,这是非常有用的一点。如果我们把 [l, ...
阅读全文
摘要:题目链接: BZOJ - 1576题目分析首先Orz Hzwer的题解。先使用 dijikstra 求出最短路径树。那么对于一条不在最短路径树上的边 (u -> v, w) 我们可以先沿树边从 1 走到 u ,再走这条边到 v ,然后再沿树边向上,可以走到 (LCA(u, v), v] 的所有点 (...
阅读全文
摘要:题目链接: BZOJ - 2819题目分析我们知道,单纯的 Nim 的必胜状态是,各堆石子的数量异或和不为 0 。那么这道题其实就是要求求出树上的两点之间的路径的异或和。要求支持单点修改。方法一:树链剖分这道题用树链剖分显然是可以做的,并且也很好写。我刚开始写完之后又 WA 了,又是线段树写错了!!...
阅读全文
摘要:题目链接:BZOJ - 2243题目分析树链剖分...写了200+行...Debug了整整一天+...静态读代码读了 5 遍 ,没发现错误,自己做小数据也过了。提交之后全 WA 。————————————— 杯具的分割线 —————————————————然后看了别人代码。。然后发现。。我写线段树区...
阅读全文
摘要:题目链接:HDOJ - 5160题目分析第一眼看上去,要求统计所有不同排列对答案的贡献。嗯...完全没有想法。但是,如果我们对每个数字单独考虑,计算这个数字在总答案中的贡献,就容易多了。对于一个数字 ai ,有 ni 个 。比它大的数字有 p 个,比它小的数字有 q 个。所有的数字一共有 N 个。首...
阅读全文
摘要:题目链接:HDOJ - 5159这道题的做法太多了..BC的第二题也是可以非常水的..算法一我在比赛的时候写的算法是这样的..预处理出所有的答案,然后对于每个询问直接输出。询问 (a, b) 记作 (a, b) 。(a, b) 的答案是由 (a, b-1) 的答案推出的。(a, 1) 的答案是 1 ...
阅读全文
摘要:题目链接:POJ - 2774题目分析题目要求求出两个字符串的最长公共子串,使用后缀数组求解会十分容易。将两个字符串用特殊字符隔开再连接到一起,求出后缀数组。可以看出,最长公共子串就是两个字符串分别的一个后缀的 LCP ,并且这两个后缀在 SA 中一定是相邻的。那么他们的 LCP 就是 Height...
阅读全文
摘要:---恢复内容开始---题目链接:BZOJ - 1692题目分析首先,有个比较简单的贪心思路:如果当前剩余字符串的两端字母不同,就选取小的字母,这样显然是正确的。然而若两端字母相同,我们怎么选取呢?这时我们要从两端分别向内部比较,看那一端向内的字符串字典序小。比如这个字符串 ABCDBA,从左端向内...
阅读全文
摘要:题目链接:BZOJ - 3238题目分析显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显。求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组。那么我们可以用这个 Height 数组求出所有后缀之间 LCP 的和。我们用 f[i] 表示字典序第 i 的后缀...
阅读全文
摘要:题目链接:HDOJ - 5155题目大意有一个 n * m 的棋盘,已知每行每列都至少有一个棋子,求可能有多少种不同的棋子分布情况。答案对一个大素数取模。题目分析算法1: 使用容斥原理与递推。 首先,一个 n * m 的棋盘不考虑任何限制时,可能的分布情况为 2^(n*m) ,除去没有棋子的情况...
阅读全文
摘要:题目链接:UOJ - 51据说这题与 CF 39E 类似。题目分析一看题目描述,啊,博弈论,不会!等待爆零吧...这时,XCJ神犇拯救了我,他说,这题可以直接搜啊。注意!是用记忆化搜索,状态为 (a, b) 。是这样的:我们从后面倒着推,对于一个无法再增加 a 或 b 的 (a, b) 状态,当前走...
阅读全文

浙公网安备 33010602011771号