<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[关祺]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JetRichardLee1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JetRichardLee1]]></copyright><item><title><![CDATA[splay专题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/69665945</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/69665945</guid><author>JetRichardLee1</author><pubDate>Sat, 08 Apr 2017 14:04:36 +0800</pubDate><description><![CDATA[splay是个很好的东西，与线段树相比，它能够实现诸如将区间翻转等操作，而复杂度也是平均logn的
splay的复杂度优秀在于它是一棵二叉树，而一个节点又代表了一个区间，那么寻找一个区间[l,r]并修改或是询问它，利用二叉树的性质，只需要将l-1旋转至根，r+1旋转至根的左儿子处，那么根的左儿子的右儿子就代表了要修改的区间了，而因为它是一棵"平衡"二叉树，所以复杂度还是有保证的。
splay例]]></description><category></category></item><item><title><![CDATA[cdq分治专题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/69056119</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/69056119</guid><author>JetRichardLee1</author><pubDate>Tue, 04 Apr 2017 11:55:11 +0800</pubDate><description><![CDATA[cdq分治是一种往往用于多维偏序问题的算法
比如n维问题
一维先排好所有子问题，然后solve（l,mid）,solve(mid+1,r），之后按照第二维排序[l,r]，处理[l,mid]对[mid+1,r]的影响，影响通过一个n-2维的数据结构来体现
复杂度：n*logn*数据结构复杂度
这样我们便用cdq分治优化掉了一维


bzoj3262
标准的三位偏序问题。。。写的第一道]]></description><category></category></item><item><title><![CDATA[整体二分专题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/68940637</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/68940637</guid><author>JetRichardLee1</author><pubDate>Sat, 01 Apr 2017 09:01:13 +0800</pubDate><description><![CDATA[整体二分一般解决：边修改边询问，询问一般询问区间[l,r]里第k小/大
思想：整体二分相当于对所有询问与修改一起二分，二分的是那个第k大/小
解决办法：solve(l,r,L,R),表示处理位于(l,r)（这里的l,r,并不是原询问顺序，而是将询问排序到这一层时的l，r具体理解看下面）中的询问，L，R是二分的范围。
首先，当L=R时，将l，r内的所有答案赋为L
当L！=R；
int md]]></description><category></category></item><item><title><![CDATA[线段树专题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/67650310</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/67650310</guid><author>JetRichardLee1</author><pubDate>Tue, 28 Mar 2017 22:18:59 +0800</pubDate><description><![CDATA[线段树是个吼东西啊，比较高级的数据结构一般都是牵扯logn的，而线段树则是其中最基础，也是应用很灵活的一种。
基本思想就是之前说过的“数据区域化”
实现可以随便找到一篇博客随便便讲了
这里以题目专题的形式列出
bzoj4094
单点修改，区间询问区间内不任意元素不相邻的最大和。
线段树维护4个值，分别表示这个区间左右端点都没选，只选了左/右，和左右都选了
#include
#incl]]></description><category></category></item><item><title><![CDATA[bzoj2520 [Shoi2010]扫雷机器人]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/66972467</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/66972467</guid><author>JetRichardLee1</author><pubDate>Mon, 27 Mar 2017 16:13:11 +0800</pubDate><description><![CDATA[思路摘自cqx大佬思路：
“30分的算法
用图论的想法来理解这个问题。每个雷为图论中的一个点，如果i的爆炸会直接导致j的爆炸，那就连一条从i到j的有向边。每一次引爆i，就相当于把图中所有从i可直接、间接到达的点都删除。题目相当于问把所有点都删除至少需要多少次、至多需要多少次这样的操作。这显然只需要先求出强连通块每块缩成一个点。强连通块的个数就是最大值，缩点后没有入度的点数就是最小值。时间复杂度]]></description><category></category></item><item><title><![CDATA[ac自动机及相关dp]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/64437450</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/64437450</guid><author>JetRichardLee1</author><pubDate>Tue, 21 Mar 2017 11:39:25 +0800</pubDate><description><![CDATA[终于会写ac自动机了。。。记得高一时充满了对这个算法的恐慌。。。
ac自动机的实际与kmp十分相像，不过它是有一堆匹配字符串。具体原理请见其他的博客。
首先，在szc大佬（%%%orz）的模板演示下，以及hzwer的模板参考下，终于自己独立写出了自己的模板（指针版真的遭不住）。。。（请神犇们orz不要嘲笑我这个蒟蒻。。）
下贴


然后贴两道例题
hdu2222（最裸的初学者必做题）]]></description><category></category></item><item><title><![CDATA[树链剖分个人题目总结]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62891493</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62891493</guid><author>JetRichardLee1</author><pubDate>Fri, 17 Mar 2017 18:15:08 +0800</pubDate><description><![CDATA[首先，想要学树链剖分基础的朋友们很抱歉请换篇博客看，，，这是个题目总结
//////////////////////////////////
本蒟蒻求不被大佬嘲讽。。。。
//////////////////////////////////
树剖啊啊，记得高一时因“运输计划”一题需要此算法，还不会线段树的我便去网上看。。。嗯嗯。。结果可想而知。。从此有了心理阴影。。
其实树剖没那么恶心，]]></description><category></category></item><item><title><![CDATA[分块与莫队]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62417150</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62417150</guid><author>JetRichardLee1</author><pubDate>Thu, 16 Mar 2017 09:48:38 +0800</pubDate><description><![CDATA[我们在做线段树等问题时，会通过将区间分成2部分，再将每一部分二分，成了一个较为严谨的树状结构。
而分块在复杂度或是结构上很不严谨，它的本质上只是将数据分成了一个个块状区域，每一个区域大小都由君定。
但分块与线段树的核心思想都是一样的：将本来整合的总体信息区域化
明显的，当我们综合信息时，我们希望信息越整体越好，这样我们调用就越方便，但是在我们修改信息时我们则更希望信息区域性更强，这样我们的修]]></description><category></category></item><item><title><![CDATA[斜率优化]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62050564</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/62050564</guid><author>JetRichardLee1</author><pubDate>Tue, 14 Mar 2017 19:33:36 +0800</pubDate><description><![CDATA[啊啊，斜率优化啊。
推荐一篇很好的博客 http://www.cnblogs.com/MashiroSky/p/6009685.html（感觉说“转载”有点怪好像说推荐的博客是转载的。。总之就表达一下对那位作者作品权的尊重以及对那位大佬的尊敬与感激。。。）
对象：形如dp[i]=max/min(dp[j]+a[i]*b[j]+c[i])等,a，b为单调函数，转移主要发生在一维，在转移式中有关于]]></description><category></category></item><item><title><![CDATA[树形dp]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/61925836</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/61925836</guid><author>JetRichardLee1</author><pubDate>Mon, 13 Mar 2017 19:57:46 +0800</pubDate><description><![CDATA[顾名思义，在树上做dp。若想能够比较顺利的解决问题，应注意：
1.dp类型
有的tree dp仅仅只是递推，这种题目一般看清题面，把握好问题的实质；
有的时候便是普通dp解决树的信息，比如树的直径之类；
有的时候会利用 树 的信息来制造限制条件。
例题：hdu1520没有上司的舞会(只强调父亲节点与儿子节点的关系且为有根树);
#include
#include
#include
#i]]></description><category></category></item><item><title><![CDATA[shoi2012 day2（想看T2的算了吧我也不会）]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/61196730</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/61196730</guid><author>JetRichardLee1</author><pubDate>Fri, 10 Mar 2017 14:34:50 +0800</pubDate><description><![CDATA[T1(bzoj2834)
【问题描述】
回家的路 

【问题描述】 
2046 年 OI 城的城市轨道交通建设终于全部竣工，由于前期规划周密，建成 后的轨道交通网络由 2n 条地铁线路构成，组成了一个 n 纵 n 横的交通网。如下 图所示，这 2n 条线路每条线路都包含 n 个车站，而每个车站都在一组纵横线路 的交汇处。 出于建设成本的考虑，并非每个车站都能够进行站内换乘，能够进行站内换]]></description><category></category></item><item><title><![CDATA[codeforces---748]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/59482645</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/59482645</guid><author>JetRichardLee1</author><pubDate>Thu, 02 Mar 2017 10:09:53 +0800</pubDate><description><![CDATA[D题
题意：给出k个长度为n的字符串，每个串有一个价值vi，现在请用这k个串（不必全用完）构成一个长的回文串，使这个串价值最大。
做法：先注意到一点：他们的长度是相等的，所以其实说是回文但实际并不需要什么后缀数组的，因为一个串在回文的另一端必定只对应另一个完整的串。贪心，先处理出来每个串是否回文，若否，它的对应串是谁（这里我们需要用map来编号），并把这个串的所有值存到它的优先队列里。
先对]]></description><category></category></item><item><title><![CDATA[一次不知道该叫什么的模拟赛和一篇不知道该起什么标题的补题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/56307149</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/56307149</guid><author>JetRichardLee1</author><pubDate>Tue, 21 Feb 2017 21:33:01 +0800</pubDate><description><![CDATA[这套题前部分略水，但T2的正解（虽然A了），T5的优化，以及T6，在下都束手无策，还需要好好学习啊。。。。自己还是太水了。。。。
A题
模拟。。。直接贴代码了。。。、

#include
#include
#include
#include
#include
using namespace std;
int n;
string h;
int a[30],cnt=0;
int main()
]]></description><category></category></item><item><title><![CDATA[usaco 2017 2月月赛]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/56009708</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/56009708</guid><author>JetRichardLee1</author><pubDate>Mon, 20 Feb 2017 11:20:01 +0800</pubDate><description><![CDATA[usaco月赛题很健脑啊。。一直坚持没看题解自己做，感觉收获很大，希望自己能坚持下去。。
gold 1
给出一个n*n（输入）表格图，每个格子上都有一个权值（输入），现在从左上角走到右下角，每走一步需要花费t（输入）的代价，同时，每走三步需要花费当前所在格子权值的代价，求最小代价。
用spfa跑，状态用四位数压缩，表示为dis[now][step]，其中step表示当前走的步数%3的值，no]]></description><category></category></item><item><title><![CDATA[codeforces #397 problemF 解题报告 补题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55504841</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55504841</guid><author>JetRichardLee1</author><pubDate>Fri, 17 Feb 2017 10:00:39 +0800</pubDate><description><![CDATA[F
Souvenirs
【题意】
给出一段长度为N序列以及M个询问：区间[l,r]间最小元素差值是多少
【输入格式】
第一行：一个整数N，表示序列长度；
第二行：N个整数，描述这个序列；
第三行：一个整数M，表示询问个数；
接下来的M行：每行两个整数l , r,描述这个询问。
【输出格式】
M行：每行一个整数n，表示对应询问的答案。
【样例】




Input
]]></description><category></category></item><item><title><![CDATA[codeforces #397 problemE  解题报告 补题]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55504154</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55504154</guid><author>JetRichardLee1</author><pubDate>Fri, 17 Feb 2017 09:08:43 +0800</pubDate><description><![CDATA[E 
【tree folding】

注:图片来源:http://codeforces.com/contest/765/problem/E
【题意】
给出一棵树，可以进行一种“合并”操作：对于一个节点v，若它有两条子树a,b,满足v到a中最远节点的距离等于到b中最远节点的距离，且b（b或a都一样啦）为一条单链，那么便可以把b链从图中删掉，现在，询问该树可否通过这种操作合并成一条链，若可以]]></description><category></category></item><item><title><![CDATA[usaco 训练总结4]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55258311</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55258311</guid><author>JetRichardLee1</author><pubDate>Thu, 16 Feb 2017 14:30:52 +0800</pubDate><description><![CDATA[这里都是些之前在codevs做的但在usaco4章节后没有找到的（汗），觉得有必要记录的题目


素数方阵
很刁钻很刁钻的暴搜
开始的思路：既然都是质数，那质数的最后一位一定是1，3，7或9，所以先预处理每一位都是1，3，7，9的，各个位和还满足要求的质数，然后把他们分别枚举填到最后一行，最后一列，然后处理所有各个位和满足要求的质数，并先填对角线，再横着边判断边填1，2，3，4行，天真的]]></description><category></category></item><item><title><![CDATA[codeforces#397 -----第一次codeforces]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55253906</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55253906</guid><author>JetRichardLee1</author><pubDate>Thu, 16 Feb 2017 11:47:53 +0800</pubDate><description><![CDATA[第一次打cf，就碰上了div1，div2合并。。。
题目理解的不是很快，所以写的有点慢
cf的ABC三题真心友好。。。当然这次的C题稍稍有些坑，被hack后才发现漏情况了。。。
D题看上去有些绕，但仔细想想，其实也没什么，集合之间对应关系是有点复杂，有点绕，其实只要把值都为x的原点对应到相同g节点（只要是未访问过的即可），这个节点再对应到编号为x的节点。并保证对于出现过的值x，编号为x的原点]]></description><category></category></item><item><title><![CDATA[usaco训练总结3]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55251932</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55251932</guid><author>JetRichardLee1</author><pubDate>Thu, 16 Feb 2017 10:02:31 +0800</pubDate><description><![CDATA[前两篇文章都有乱码。。。。markdown真难用
usaco 5.4.1
真是越来越意识到自己dp能力差了。。。
能想到只是要求两条不相交路线，但是总纠结于是否会在后面循环时被重复计算导致答案错误。。
其实自己写一下测一些不就好了，但因为能力弱还是有内心的恐惧啊，所以不敢下手。。。还得多练习啊。。
dp[i][j]表示第一条路线走到了I,第二题路线走到了j，并且期间没有相交的方案数
	]]></description><category></category></item><item><title><![CDATA[usaco 训练总结2]]></title><link>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55251654</link><guid>https://blog.youkuaiyun.com/JetRichardLee1/article/details/55251654</guid><author>JetRichardLee1</author><pubDate>Thu, 16 Feb 2017 09:41:10 +0800</pubDate><description><![CDATA[usaco 5.3.1 
“怎么做呢？” 
“搜呗！”void dfs(int x,int cnt,int now)
{
    if(cnt>minnum)  
        return ;//剪枝1
    if(now==Q)
    {
        minnum=min(minnum,cnt);
        for(int i=1;i<=cnt;i++)
        {]]></description><category></category></item></channel></rss>