12 2016 档案

摘要:Description 一棵树,支持两个操作,修改一个点的颜色,问树上最远的两个白点距离. Sol 动态点分治. 动态点分治就是将每个重心连接起来,形成一个跟线段树类似的结构,当然它不是二叉的... 这样的树一共有 \(logn\) 层,每个节点维护一些信息. s1[] 所有子节点到该节点的父重心, 阅读全文
posted @ 2016-12-28 16:57 北北北北屿 阅读(206) 评论(0) 推荐(0)
摘要:Description 一棵树,问至少有 \(k\) 个黑点的路径最大异或和. Sol 点分治. 用点分治找重心控制树高就不说了,主要是对答案的统计的地方. 将所有路径按点的个数排序. 可以发现当左端点递增的时候右端点单调递减,时刻满足Trie树里的所有元素都是合法的即可,不断把右端点丢进去,用左端 阅读全文
posted @ 2016-12-24 14:49 北北北北屿 阅读(198) 评论(0) 推荐(0)
摘要:Description 有些黑点,问你选择不超过 \(k\) 个黑点的路径,路径权值最大是多少. Sol 点分治. 这是qzc的论文题,不过我感觉他的翻译好强啊...我还是选择了自己去看题目... 点分治每次至少分一半,所以层数不超过过 \(logn\) 每次分治只考虑过根节点的情况. 我们想想如何 阅读全文
posted @ 2016-12-23 21:41 北北北北屿 阅读(207) 评论(0) 推荐(0)
摘要:Description 在某时刻加入或删除一个点,问每个时刻的集合中能异或出来的最大值是多少. Sol 线段树+按时间分治+线性基. 按时间分治可以用 \(logn\) 的时间来换取不进行删除的操作. 把一个数字的存在时间挂在线段树的区间上,不超过 \(logn\) 个区间,所以总和不超过 \(nl 阅读全文
posted @ 2016-12-23 21:29 北北北北屿 阅读(309) 评论(0) 推荐(0)
摘要:Description 在一个图上,在两个点间连一条边,问这两个点最早在什么时候联通. Sol 并查集+启发式合并. 按秩合并的并查集...我也不知道什么是按秩合并,反正就跟启发式合并差不多,合并的时候将小的往大的里和,因为每次增长都是小集合倍数的两倍以上,所以层数不超过 \(log n\) 然后连 阅读全文
posted @ 2016-12-23 21:22 北北北北屿 阅读(209) 评论(0) 推荐(0)
摘要:Description 每次可以任取数字,使用最优策略让差最大. Sol DP. 一开始我写了个单调队列贪心,然后狂WA不止... 正着做有后效性,因为前面的决策无法保证在后面是最优秀的,但如果倒这做就没有后效性了..感觉倒着做这种想法总是容易忽略,它对前面的影响应该多考虑一下. 然后DP就可以了. 阅读全文
posted @ 2016-12-23 21:17 北北北北屿 阅读(237) 评论(0) 推荐(0)
摘要:Description 从一个点到达与他距离第 \(k\) 小的点,问从每个点跳 \(m\) 次到达那个点. Sol 队列+倍增. 保持队列里的元素个数为 \(k\) ,从前往后扫不难发现左右端点都是单调的. 求跳 \(m\) 次就是倍增了,滚一下数组. Code 阅读全文
posted @ 2016-12-23 21:12 北北北北屿 阅读(453) 评论(0) 推荐(0)
摘要:Description 求一个最长的序列,最大值最小值之差不超过 \(k\) . Sol 单调队列. 一个队列直接上就行.. Code 阅读全文
posted @ 2016-12-23 21:09 北北北北屿 阅读(283) 评论(0) 推荐(0)
摘要:Description 每次可以将大于 \(k\) 的一个数 \(-1\), 在左边或右边的数 \(+1\) ,问最大能得到多长的序列每个数都大于等于 \(k\) . Sol 单调栈. 这道题好神啊qwq...思路++ 首先如果一段序列满足 \(\sum_{i=l}^ri \geqslant k(r 阅读全文
posted @ 2016-12-23 21:06 北北北北屿 阅读(181) 评论(0) 推荐(0)
摘要:Description 问一个序列是不是起始序列的子序列. Sol 二分. 直接维护每个数出现的位置,二分一个最小的就行. Code 阅读全文
posted @ 2016-12-23 20:53 北北北北屿 阅读(124) 评论(0) 推荐(0)
摘要:Description 问把n截成每个长度后不同子串个数. Sol 调和极数+Hash. 首先这是一个式子 \(n\sum_{i=1}^n \frac {1}{i}\) . 这东西就是调和极数再乘上 \(n\) ,他趋近于\(nlnn\) 正反哈希一下. Code 阅读全文
posted @ 2016-12-23 20:50 北北北北屿 阅读(186) 评论(0) 推荐(0)
摘要:Description 问一个图是否有二染色方案,满足每个点都跟他颜色不用的点有连边. Sol 结论题. 除了只有一个点,否则任何图都能被二染色. Code 阅读全文
posted @ 2016-12-23 20:39 北北北北屿 阅读(143) 评论(0) 推荐(0)
摘要:Description 一个 \(n*n\) 行列式,\((i,j)=gcd(i,j)\) Sol 线性筛. 这道题神奇的筛出来 \(phi\) ... 打表可以发现,一个数会被他所有的因子减掉因子的 \(phi\) ... 然后我就不会证明了... Code 阅读全文
posted @ 2016-12-19 20:17 北北北北屿 阅读(256) 评论(0) 推荐(0)
摘要:Description 用+-号连接1-n所有数字的数位,问结果是多少. Sol 数位DP. \(f[i][j][0/1][0/1]\) 表示长度为 \(i\) 的数字,开头数字是 \(j\) ,是否有前导0(这个会影响符号),每相邻两组数符号是否相同. 转移开一下代码吧. 这道题的符号有点乱,所以 阅读全文
posted @ 2016-12-19 19:38 北北北北屿 阅读(282) 评论(0) 推荐(0)
摘要:Description 问长度前 \(k\) 大的奇长度回文子串的乘积. Sol Manacher. 直接马拉车跑一边,统计一下答案,每次将长度-2就可以了. Code 阅读全文
posted @ 2016-12-19 19:31 北北北北屿 阅读(138) 评论(0) 推荐(0)
摘要:Description 问 \([L,R]\) 中0-9的个数. Sol 数位DP. 预处理好长度为 \(i\), 最高位为 \(j\) 的数位之和. 然后从上往下计算,不要忘记往下走的同时要把高位的贡献加上去.. Code 阅读全文
posted @ 2016-12-15 15:41 北北北北屿 阅读(151) 评论(0) 推荐(0)
摘要:Description 问[L,R]中有多少能表示k个b次幂之和. Sol 数位DP. 当2进制时. 建出一个二叉树, \(f[i][j]\) 表示长度为 \(i\) 有 \(j\) 个1的个数. 递推式就是左右子树之和 \(f[i][j]=f[i-1][j-1]+f[i-1][j]\) 将b进制变 阅读全文
posted @ 2016-12-15 15:38 北北北北屿 阅读(120) 评论(0) 推荐(0)
摘要:Description 给出一个关系,包括 And,Xor,Or 问是否存在解. Sol 经典的2-SAT问题. 把每个值看成两个点,一个点代表选 \(0\) ,另一个代表选 \(1\) . 首先来看 Xor : 如果两个值异或起来为 \(1\) :那么连边 \((i_0,j_1),(i_1,j_0 阅读全文
posted @ 2016-12-14 18:44 北北北北屿 阅读(133) 评论(0) 推荐(0)
摘要:Description \(n\) 个炸弹,每个炸弹有两个放置点,可以任选一个,问你最大的半径是多少. Sol 二分+2-SAT+Tarjan. 首先二分一下答案.然后就成了一个2-SAT问题. 建模就是, \(i\) 如果和 \(j\) 的距离超过 \(x*2\),那么 \(i\) 只能选择 \( 阅读全文
posted @ 2016-12-14 17:44 北北北北屿 阅读(196) 评论(0) 推荐(0)
摘要:Description 一个序列,支持两个操作. 1.在序列尾加入一个数. 2.询问 [l,r] 中与 x 异或值最大的数. \(n\leqslant 3*10^5\) Sol 可持久化 Trie 树. 跟主席树一样建二进值 Trie 树. 异或就是尽量找不相同的就行. Code 阅读全文
posted @ 2016-12-14 17:19 北北北北屿 阅读(123) 评论(0) 推荐(0)
摘要:Description 每个字符串有些价值,问生成长度为 \(l\) 的字符串最多能获得多少价值,总字符数不超过 \(200\), \(l\leqslant 10^{14}\) . Sol AC自动机 + 倍增Floyd. 用AC自动机统计到达每个节点会获得的权值. 然后在AC自动机从根节点开始找一 阅读全文
posted @ 2016-12-12 19:54 北北北北屿 阅读(272) 评论(0) 推荐(0)
摘要:Day0 中午坐车开始往日照跑...在路上看了两集行尸走肉第七季...感觉非常Excited...格伦被硬生生打死...尼克和尼根...感觉第七季开头还不错的呢...(好像说偏了...16.00左右就到了,非常感谢没有在曲阜师范大学...那可是我们班主任毕业的地方...晚上去试机,1号考场非常幸福呢 阅读全文
posted @ 2016-12-09 20:01 北北北北屿 阅读(222) 评论(0) 推荐(0)
摘要:Description 三个杯子,一开始钥匙在中间,每次等概率的选择两边的两个,与中间的交换,问第 \(n\) 次选择中间的杯子是钥匙的概率是多少. \(n=\sum_{i=1}^{k} a_i,a_i\leqslant 10^{18}\) Sol 概率DP. 首先 \(a_i\) 表示在中间的概率 阅读全文
posted @ 2016-12-08 22:08 北北北北屿 阅读(278) 评论(0) 推荐(0)
摘要:Description 一棵树,问以那个节点为根时根的总和最大. Sol DFS+树形DP. 第一遍统计一下 size 和 d. 第二遍转移根,统计答案就行了. Code 阅读全文
posted @ 2016-12-08 08:04 北北北北屿 阅读(170) 评论(0) 推荐(0)
摘要:Description 给一棵树,求最小的一个比例使得是叛徒的人数不超过k. Sol 树形DP. 一开始直接写了个二分...然后T了...复杂度应该挺科学...但是常数大... 然后看见了树形DP的做法... Code 阅读全文
posted @ 2016-12-07 22:06 北北北北屿 阅读(258) 评论(0) 推荐(0)
摘要:Description 一个数列. \(a_1=1,a_2=2\) 当 \(n>2\) 时 \[a_n = \{ \begin {matrix} 2a_{n-1},\text{n is an odd number} \\ a_{n-1}+r_{n-1},\text{ n is an even num 阅读全文
posted @ 2016-12-07 21:50 北北北北屿 阅读(488) 评论(2) 推荐(0)
摘要:Description 由\([0,B-1]\)的数字构造一个 \(B\) 进制数字,使得他是 \(B-1\) 的倍数. Sol 贪心+二分. 首先 \(X\) 是 \(B-1\) 的倍数,那么有 \(X \equiv 0 (mod B-1)\) 设 \(X\) 的第 \(i\) 位,为\(X_i\ 阅读全文
posted @ 2016-12-05 19:30 北北北北屿 阅读(163) 评论(0) 推荐(0)
摘要:Description 从一个点到一条直线,每次纵坐标只能增加或减少1,有些位置有障碍,求最少增加步数. Sol 贪心. 或许是贪心吧...反正在可到达的范围内,纵坐标尽量小... 做的时候维护一下两个端点,因为在这个区间内操作数单调递增,只需要取最下面的点就好. Code 阅读全文
posted @ 2016-12-04 19:05 北北北北屿 阅读(344) 评论(0) 推荐(0)
摘要:Description 给出几个异或方程组求解,\(n \leqslant 2000\) Sol 高斯消元. 直接消元就行,遇到自由元就直接输出,同时记录一下用到的最高行数. 复杂度不科学就可以用 bitset 啊...跑的灰常快...不过他没有重载某一位的异或操作,需要人工判断一下. Code 阅读全文
posted @ 2016-12-01 15:11 北北北北屿 阅读(204) 评论(0) 推荐(0)
摘要:Description 一个图,对一个点进行操作会改变这个点及其相邻的点的状态,问全部变成黑色至少需要几次.数据保证有解. Sol Meet in middle. 我一开始写个高斯消元,发现有两个点过不去,原因是没有处理好自由元,应该在DFS的时候回带所有解,然后就弃疗了. 然后发现这个其实可以暴力 阅读全文
posted @ 2016-12-01 15:05 北北北北屿 阅读(154) 评论(0) 推荐(0)