<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kkkkahlua的博客]]></title><description><![CDATA[觉得博客园比较好看_(:з」∠)_于是溜去了http://www.cnblogs.com/kkkkahlua/]]></description><link>https://blog.youkuaiyun.com/kkkkahlua</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kkkkahlua]]></copyright><item><title><![CDATA[优快云拜拜~]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78178368</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78178368</guid><author>kkkkahlua</author><pubDate>Sun, 08 Oct 2017 22:59:22 +0800</pubDate><description><![CDATA[新博客：http://www.cnblogs.com/kkkkahlua/


还是因为之前博客更新的事情...


溜去了博客园


今天回来想发个公告发现博客配置里面又可以换回原来的版面了...


有点小遗憾毕竟这里也攒了一些东西了...


嘛


嘛嘛嘛


怎么说...博客园还是比优快云好看很多_(:з」∠)_]]></description><category></category></item><item><title><![CDATA[Codeforces 526D Om Nom and Necklace 循环节 kmp]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78063441</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78063441</guid><author>kkkkahlua</author><pubDate>Fri, 22 Sep 2017 15:30:03 +0800</pubDate><description><![CDATA[题目链接题意给定一个串 TT，对它的每一个前缀能否写成 A+B+A+B+...+B+AA+B+A+B+...+B+A 的形式（kk 个 AA，k+1k+1 个 BB，均可为空串）思路A+B+A+B+...+B+AA+B+A+B+...+B+A 可以看做 AB+AB+AB+...+AAB+AB+AB+...+A，即 kk 个 ABAB 和 11 个 AA. 也就是判断这个串 
能否被表示为 kk 个循]]></description><category></category></item><item><title><![CDATA[Codeforces 536B Tavas and Malekas kmp找所有与前缀匹配的后缀]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78056716</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78056716</guid><author>kkkkahlua</author><pubDate>Thu, 21 Sep 2017 20:47:34 +0800</pubDate><description><![CDATA[题目链接题意有只含小写字母的字符串 TT，其中出现了若干次字符串 PP，并升序给出其中一部分 PP 的起始位置，要求 TT 有多少种不同的可能。思路就是找有多少空缺位置 kk，答案就是 26k26^k.按顺序把 PP 往 TT 中填充，同时记录空缺位置。此时需要判断是否与之前已填充的部分矛盾，其实就是判断给定的 PP 的前缀与后缀是否匹配。直接比较显然会 tletle. 故应预处理出 PP 的所有与]]></description><category></category></item><item><title><![CDATA[HDU 4125 Moles 二叉排序树 树状数组 kmp]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78047116</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78047116</guid><author>kkkkahlua</author><pubDate>Thu, 21 Sep 2017 00:23:07 +0800</pubDate><description><![CDATA[题目链接题意将一串数（n≤1e6n\leq 1e6）依次插入到一棵二叉排序树中，dfsdfs一遍，将经过的每个节点的信息加到一个串尾（如果当前节点为奇数则加′1′'1'否则加′0′'0'）。最后再给一个模式串，问其在得到的串中出现了多少次。思路这道题的每一块都十分清晰，建树，dfsdfs，kmpkmp。然而问题就出在了数据量上。因此，要在两个方面进行优化。11. 插入到二叉排序树中：这里有用到一个性]]></description><category></category></item><item><title><![CDATA[HDU 1867 A + B for you again 字符串拼接 kmp]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78045056</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78045056</guid><author>kkkkahlua</author><pubDate>Wed, 20 Sep 2017 20:26:58 +0800</pubDate><description><![CDATA[题目链接题意给定两个字符串 AA，BB，可以拼成 ABAB 也可以拼成 BABA，拼接时前缀与后缀的相同部分在拼接成的字符串中只出现一次。要求输出最短的且字母序最小的字符串。这道题关键是要读懂题意= =思路基本同HDU 2594 Simpsons’ Hidden Talents 两字符串前缀与后缀的最长公共部分.直接用 failfail 数组就完了。Code#include <bits/stdc++]]></description><category></category></item><item><title><![CDATA[HDU 6208 The Dominator of Strings 读入挂＋kmp / AC自动机]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78037018</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78037018</guid><author>kkkkahlua</author><pubDate>Wed, 20 Sep 2017 09:32:50 +0800</pubDate><description><![CDATA[题目链接题意给定 nn 个串，问是否存在一个串包含其它所有串。读入的问题The total length of strings in each case has the limit of 100000.
The limit is 30MB for the input file.考虑将所有的串读到一整个串里，记录每个串在其中的开始位置和长度注意：这种情况下，如果每个串末尾有 '\0'，则开的长度不是]]></description><category></category></item><item><title><![CDATA[HDU 2594 Simpsons’ Hidden Talents 两字符串前缀与后缀的最长公共部分]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78034793</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78034793</guid><author>kkkkahlua</author><pubDate>Tue, 19 Sep 2017 21:25:08 +0800</pubDate><description><![CDATA[题目链接题意对于给定的两个字符串 TT 与 PP，求最长的子串，既是 PP 的前缀，又是 TT 的后缀。法一：kmp思路对 PP 求 failfail 数组，然后与 TT 进行匹配，最大长度即为匹配到最后的公共长度。注意在中间就匹配成功时处理一下。Code#include <bits/stdc++.h>
#define maxn 100010
using namespace std;
typedef]]></description><category></category></item><item><title><![CDATA[hdu 1358 & hdu 3746 & poj 2406 & uva 12012 循环节与kmp]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78034066</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78034066</guid><author>kkkkahlua</author><pubDate>Tue, 19 Sep 2017 20:14:07 +0800</pubDate><description><![CDATA[参考kmp next函数 kmp的周期问题，深入了解kmp中next的原理    ——Because Of YouHDU 1358题意对于给定的字符串 TT，对其每一个前缀，问其是否由若干个循环节祖成。思路充要条件：len%(len−fail[len])==0len \% (len-fail[len]) == 0Code#include <bits/stdc++.h>
#define maxn 10]]></description><category></category></item><item><title><![CDATA[HDU 3336 Count the string 所有前缀在串中的出现总次数]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78033391</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78033391</guid><author>kkkkahlua</author><pubDate>Tue, 19 Sep 2017 18:58:23 +0800</pubDate><description><![CDATA[题目链接题意给定一个串 SS，求其所有前缀在其中的出现次数的总和。思路考虑 failfail 数组，fail[i]=jfail[i] = j 的含义是 S[0..j−1]==S[i−j..i−1]S[0..j-1] == S[i-j..i-1].记 dp[i]dp[i] 为以 ii 结尾的串中与前缀相同的串的个数。由 fail[i]=jfail[i] = j 有 S[0..j−1]==S[i−j..]]></description><category></category></item><item><title><![CDATA[HDU 4749 & POJ 3167 kmp变形]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78031993</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78031993</guid><author>kkkkahlua</author><pubDate>Tue, 19 Sep 2017 16:57:08 +0800</pubDate><description><![CDATA[HDU4749题意给定一个主串 TT 和模式串 PP，问 TT 有多少个不重合的子串与 PP 匹配。在这里，串 aa 与串 bb 匹配的含义是，∀i,j,1≤i,j≤n,⎧⎩⎨a[i]<a[j]↔b[i]<b[j]a[i]==a[j]↔b[i]==b[j]a[i]>a[j]↔b[i]>b[j]\forall i,j,1\leq i,j\leq n,\begin{eqnarray}\begin{cas]]></description><category></category></item><item><title><![CDATA[2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E Maximum Flow]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/78009087</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/78009087</guid><author>kkkkahlua</author><pubDate>Sun, 17 Sep 2017 11:18:37 +0800</pubDate><description><![CDATA[题目链接题意有 nn 个点，0,1,2,...,n−10,1,2,...,n-1，对于没对点 <i,j>(0≤i<j<n)<i,j>(0\leq i\lt j\lt n)，有一条 i→ji\rightarrow j 边，流量为 i Xor ji\ Xor\ j，问从 00 到 n−1n-1 的最大流。思路首先，00 到 n−1n-1 必须要割；其次，对于任意一个 ii，0→i0\rightarrow]]></description><category></category></item><item><title><![CDATA[HDU 6194 string string string 后缀数组+rmq]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77994912</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77994912</guid><author>kkkkahlua</author><pubDate>Fri, 15 Sep 2017 19:20:47 +0800</pubDate><description><![CDATA[题目链接题意问一个字符串有多少个子串出现恰好 kk 次思路求出 heightheight 数组后，对于相邻的 kk 个后缀，它们包含恰好出现 kk 次的子串当且仅当 k−1k-1 个 heightheight 值中的最小值 >\gt max{max\{其中第一个与前一个的公共前缀，其中最后一个与后一个的公共前缀}\}，差值即为这一段的个数。遍历一遍统计即可，最小值用 rmqrmq。注意 k=1k=1]]></description><category></category></item><item><title><![CDATA[后缀数组倍增算法模板详解]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77990117</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77990117</guid><author>kkkkahlua</author><pubDate>Fri, 15 Sep 2017 13:39:45 +0800</pubDate><description><![CDATA[参考2009国家集训队论文 后缀数组——处理字符串的有力工具    ——罗穗骞模板bool cmp(int* r, int a, int b, int l) { return r[a] == r[b] && r[a+l] == r[b+l]; }void init(int* r, int* sa, int n, int m) {
    int* x=wa, *y=wb, *t, i, j, p;]]></description><category></category></item><item><title><![CDATA[2017多校九 hdu6162 02题 Ch's gift dfs序+树状数组+离散化 / 树链剖分+线段树]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77978524</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77978524</guid><author>kkkkahlua</author><pubDate>Thu, 14 Sep 2017 11:38:41 +0800</pubDate><description><![CDATA[题目链接题意给定一棵 nn 个节点的树，每个点上有权值。mm 次询问，问 u,vu, v 链上满足权值 a≤val≤ba\leq val \leq b 的点的权值和。思路将一条链拆成四条从某个结点到根节点的链，即转化为问 根节点到某个结点的链上满足权值 a≤val≤ba\leq val \leq b 的点的权值和。离线处理，将从链中拆出来的四个点u,v,lca(u,v),fa(lca(u,v))u,]]></description><category></category></item><item><title><![CDATA[2017多校九 01题 HDU6161 Big binary tree 树形dp+hash]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77973192</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77973192</guid><author>kkkkahlua</author><pubDate>Thu, 14 Sep 2017 08:21:27 +0800</pubDate><description><![CDATA[题目链接题意有一棵 nn （n≤1e8n\leq 1e8）个节点的完全二叉树，节点 ii 的父亲节点是 ⌊i2⌋\lfloor\frac{i}{2}\rfloor。初始时每个点的权值都是它本身。现有两种操作 mm 次（m≤1e5m\leq 1e5）：
修改某个点的权值
询问 经过某个点的 权值和最大的 链 的权值和
思路dp[ ]dp[\ ] 记录从某个点向下走最长的链的权值和，修改即一路向上更新]]></description><category></category></item><item><title><![CDATA[AtCoder ARC082 E Convex Score 贡献思想 双射]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77902390</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77902390</guid><author>kkkkahlua</author><pubDate>Sat, 09 Sep 2017 01:06:44 +0800</pubDate><description><![CDATA[题目链接题意给定 NN 个点，对于一个凸 nn 边形，称其的 nn 个顶点构成一个集合 SS，并且这个多边形内及其边上有 kk 个顶点，定义这个 SS 的 scorescore 为 2k−n2^{k-n}. 对所有的 scorescore 求和，输出 mod 998244353mod\ 998244353 的值。思路考虑一个凸 nn 边形，其内与其上共 kk 个顶点，那么它对最后答案的贡献是 2k−]]></description><category></category></item><item><title><![CDATA[LeetCode Best Time To Buy and Sell Stocks I II III IV]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77900569</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77900569</guid><author>kkkkahlua</author><pubDate>Fri, 08 Sep 2017 23:36:36 +0800</pubDate><description><![CDATA[I题意要求：交易一次 
（交易的定义为一次买入和一次卖出，并且进行下一次交易前上一次交易必须结束，且同一天不能同时进行买入和卖出的操作）思路求个前缀最小值和后缀最大值，枚举中间点 
时间复杂度：O(n)O(n)Codeclass Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n = prices.siz]]></description><category></category></item><item><title><![CDATA[BZOJ 2212 [Poi2011]Tree Rotations 线段树合并]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77859897</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77859897</guid><author>kkkkahlua</author><pubDate>Tue, 05 Sep 2017 23:16:21 +0800</pubDate><description><![CDATA[题目链接题意现在有一棵二叉树，所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有 nn 个叶子节点，满足这些权值为 1..n1..n 的一个排列)。可以任意交换每个非叶子节点的左右孩子。 
要求进行一系列交换，使得最终所有叶子节点的权值按照遍历序写出来，逆序对个数最少。参考线段树的合并     ——杭州二中 黄嘉泰 
【bzoj2212】[Poi2011]Tree Rotations  ——]]></description><category></category></item><item><title><![CDATA[HDU 4585 Shaolin 找最接近的数 Treap / set]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77854160</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77854160</guid><author>kkkkahlua</author><pubDate>Tue, 05 Sep 2017 17:41:14 +0800</pubDate><description><![CDATA[题目链接题意若干组插入与询问，每次询问与当前要插入的数最接近的数。思路向左走向右走的时候记录一下即可。（是最近写的 TreapTreap 里面最简单的了(躺倒写博客的时候想了一下，为啥不用 setset 呢！因为是搜 HDU 上 Treap 相关的题目搜到的这题...。 
用 set 几行就搞定了吗= =而且写 TreapTreap 就相当于自己写了个 setset 啊…。 
（写 setset 一]]></description><category></category></item><item><title><![CDATA[HDU 5877 Weak Pair dfs序 + 树状数组 + 离散化]]></title><link>https://blog.youkuaiyun.com/kkkkahlua/article/details/77853562</link><guid>https://blog.youkuaiyun.com/kkkkahlua/article/details/77853562</guid><author>kkkkahlua</author><pubDate>Tue, 05 Sep 2017 17:03:43 +0800</pubDate><description><![CDATA[题目链接题意给定一棵树，点上有权值。问多少对点 (u,v)(u,v) 满足 uu 是 vv 的祖先 且 val[u]∗val[v]≤kval[u]*val[v]\leq k.思路类似dfs序 题目小集-hdu 3887注意点
因为 k≤1e18,val≤1e9k\leq 1e18, val\leq 1e9，所以需离散化，离散化的时候可以将 val[i]val[i] 及 k/val[i]k/val[i]]></description><category></category></item></channel></rss>