摘要: 题目链接: BZOJ - 2819题目分析我们知道,单纯的 Nim 的必胜状态是,各堆石子的数量异或和不为 0 。那么这道题其实就是要求求出树上的两点之间的路径的异或和。要求支持单点修改。方法一:树链剖分这道题用树链剖分显然是可以做的,并且也很好写。我刚开始写完之后又 WA 了,又是线段树写错了!!... 阅读全文
posted @ 2015-01-15 18:37 JoeFan 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 2243题目分析树链剖分...写了200+行...Debug了整整一天+...静态读代码读了 5 遍 ,没发现错误,自己做小数据也过了。提交之后全 WA 。————————————— 杯具的分割线 —————————————————然后看了别人代码。。然后发现。。我写线段树区... 阅读全文
posted @ 2015-01-15 10:11 JoeFan 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目链接:HDOJ - 5160题目分析第一眼看上去,要求统计所有不同排列对答案的贡献。嗯...完全没有想法。但是,如果我们对每个数字单独考虑,计算这个数字在总答案中的贡献,就容易多了。对于一个数字 ai ,有 ni 个 。比它大的数字有 p 个,比它小的数字有 q 个。所有的数字一共有 N 个。首... 阅读全文
posted @ 2015-01-13 17:13 JoeFan 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 题目链接:HDOJ - 5159这道题的做法太多了..BC的第二题也是可以非常水的..算法一我在比赛的时候写的算法是这样的..预处理出所有的答案,然后对于每个询问直接输出。询问 (a, b) 记作 (a, b) 。(a, b) 的答案是由 (a, b-1) 的答案推出的。(a, 1) 的答案是 1 ... 阅读全文
posted @ 2015-01-11 16:36 JoeFan 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ - 2774题目分析题目要求求出两个字符串的最长公共子串,使用后缀数组求解会十分容易。将两个字符串用特殊字符隔开再连接到一起,求出后缀数组。可以看出,最长公共子串就是两个字符串分别的一个后缀的 LCP ,并且这两个后缀在 SA 中一定是相邻的。那么他们的 LCP 就是 Height... 阅读全文
posted @ 2015-01-10 16:16 JoeFan 阅读(212) 评论(0) 推荐(0) 编辑
摘要: ---恢复内容开始---题目链接:BZOJ - 1692题目分析首先,有个比较简单的贪心思路:如果当前剩余字符串的两端字母不同,就选取小的字母,这样显然是正确的。然而若两端字母相同,我们怎么选取呢?这时我们要从两端分别向内部比较,看那一端向内的字符串字典序小。比如这个字符串 ABCDBA,从左端向内... 阅读全文
posted @ 2015-01-10 15:07 JoeFan 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 3238题目分析显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显。求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组。那么我们可以用这个 Height 数组求出所有后缀之间 LCP 的和。我们用 f[i] 表示字典序第 i 的后缀... 阅读全文
posted @ 2015-01-10 10:54 JoeFan 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目链接:HDOJ - 5155题目大意有一个 n * m 的棋盘,已知每行每列都至少有一个棋子,求可能有多少种不同的棋子分布情况。答案对一个大素数取模。题目分析算法1: 使用容斥原理与递推。 首先,一个 n * m 的棋盘不考虑任何限制时,可能的分布情况为 2^(n*m) ,除去没有棋子的情况... 阅读全文
posted @ 2015-01-04 13:47 JoeFan 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目链接:UOJ - 51据说这题与 CF 39E 类似。题目分析一看题目描述,啊,博弈论,不会!等待爆零吧...这时,XCJ神犇拯救了我,他说,这题可以直接搜啊。注意!是用记忆化搜索,状态为 (a, b) 。是这样的:我们从后面倒着推,对于一个无法再增加 a 或 b 的 (a, b) 状态,当前走... 阅读全文
posted @ 2015-01-02 22:59 JoeFan 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 题目链接:BZOJ - 1854题目分析方法一:这道题目有一种巧妙的使用并查集的做法 : 我们把每个数看作一个点,那么开始时每个点单独作为一个集合。对于每个卡片 (a,b) ,就是 a 与 b 之间连了一条边。(这里不是卡片是武器...不过都一样)那么在一个联通分量中,如果这个联通分量点数为 n ,... 阅读全文
posted @ 2014-12-30 22:49 JoeFan 阅读(500) 评论(0) 推荐(0) 编辑