<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Holylight_Knight]]></title><description><![CDATA[某神犇：自己选择的路，跪着也要走完。]]></description><link>https://blog.youkuaiyun.com/no1_terminator</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; no1_terminator]]></copyright><item><title><![CDATA[NOI2005 维护数列]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/78196005</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/78196005</guid><author>no1_terminator</author><pubDate>Tue, 10 Oct 2017 18:49:29 +0800</pubDate><description><![CDATA[NOI2005 维护数列tags :【Splay】,【BZOJ1500】,【洛谷2042】在线评测地址：洛谷，大视野题目描述1500: [NOI2005]维修数列Time Limit: 10 Sec  Memory Limit: 64 MBDescriptionInput输入的第1 行包含两个数N 和M(M ≤20 000)，N 表示初始时数列中数的个数，M表示要进行的操作数目。第2行包含N个数字，]]></description><category></category></item><item><title><![CDATA[NOIP2016——纪念第一次水过的一等]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/78128597</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/78128597</guid><author>no1_terminator</author><pubDate>Thu, 28 Sep 2017 21:58:00 +0800</pubDate><description><![CDATA[这里就讲一下两天后四道题的做法吧。前两题，实在是比较简单（Day2T1，打个对拍，结果把暴力打错了，改错了= =，WA了60分QAQ）


Day1T3
（为什么先是T3呢？因为T2太经典了，最后再讲）：
其实是一个很裸的Floyd+概率Dp，但是期望类的Dp方程，没写过一道题，还真写不出来。Floyd就不用说了吧？先把两两点距算出来，然后考虑一个Dp，我们类似一个背包地设，dp[i][]]></description><category></category></item><item><title><![CDATA[小试5]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77920146</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77920146</guid><author>no1_terminator</author><pubDate>Sun, 10 Sep 2017 09:13:52 +0800</pubDate><description><![CDATA[冲刺NOIP2017模拟赛1
题目名称 奶牛晒衣服 
奶牛排队 圆圈舞蹈
存盘文件名 dry 
tahort circle
输入文件名 dry.in 
tahort.in circle.in
输出文件名 dry.out 
tahort.out circle.out
时限 1s 1s
1s
内存限制 128M 
128M 128M
【注意事项】：请自行完成题目，切勿讨论。]]></description><category></category></item><item><title><![CDATA[小试4解析]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77852634</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77852634</guid><author>no1_terminator</author><pubDate>Tue, 05 Sep 2017 16:22:09 +0800</pubDate><description><![CDATA[题目质量不错。
T1：应该能看出是一个裸（so easy）的贪心+排序吧？
这里我们考虑一个dp，设dp[i][j]表示前i位，使用了j次变换，能获得的最小距离。
那么dp[i][j]=min(dp[i-1][j]+abs(n[i]-m[i]),dp[i-1][j-1]+(n[i]==m[i]))，还是很好推的。
不过由于数据范围太太太太小了，所以n^4什么的dp都可以水过去。
参考代码]]></description><category></category></item><item><title><![CDATA[小试4]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77841902</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77841902</guid><author>no1_terminator</author><pubDate>Mon, 04 Sep 2017 21:05:18 +0800</pubDate><description><![CDATA[Noip2017模拟赛4(B组)




题目名称


最小距离


海战


覆盖墙壁


倒水




存盘文件名


dis


battle


wall


Water




输入文件名


dis.in


battle.in


wall.in


water.in



]]></description><category></category></item><item><title><![CDATA[多叉树的树形背包常见建模方法]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77824790</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77824790</guid><author>no1_terminator</author><pubDate>Sun, 03 Sep 2017 20:04:58 +0800</pubDate><description><![CDATA[一.多叉树变二叉树。


这个技巧其实也有两种具体的方法：树的孩子兄弟表示法与dfs序法。
1.树的孩子兄弟表示法。
   大家在学习树形结构时一定接触了一个多叉树变二叉树的方法，就是把每个点与它的第一个儿子连边，然后将它的儿子依次连接起来。可以结合下面的图片理解这句话。


总结成口诀就是：第一个儿子是左子树，其他儿子是左子树的右子树（似乎并不押韵，手动滑稽）
2.dfs序法]]></description><category></category></item><item><title><![CDATA[AC自动机总结]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77725530</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77725530</guid><author>no1_terminator</author><pubDate>Wed, 30 Aug 2017 21:26:56 +0800</pubDate><description><![CDATA[如果你还不知道KMP是什么，或者不知道Trie是什么，先点下面的链接，学好这两样再来看这篇文章。
KMP入门教程传送门。
Trie入门教程传送门。
好，那么我来讲讲AC自动机吧。
以洛谷P3808模板题为例，
如果我们有n个模式串，和一个文本串，我们需要统计有多少个模式串在文本串中出现了，怎么办？
显然，如果我们直接枚举每个模式串，然后将其与文本串进行匹配，判断是否匹配成功，那么效率就]]></description><category></category></item><item><title><![CDATA[字典树Trie总结]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77686813</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77686813</guid><author>no1_terminator</author><pubDate>Tue, 29 Aug 2017 20:39:33 +0800</pubDate><description><![CDATA[Trie就是把n个字符串建成一个树，树的每个节点都是一个字母，然后字符串的最后一个节点，我们会在Trie中对应的节点处打上标记，然后从根节点到每个标记点的路径上的字母依次排开就是n个字符串中的一个。
是不是很浅显？
稍稍举个例子：
n=5
he
his
hers
abcx
bc
那么我们建的Trie应该是这样的
          root
         /    |]]></description><category></category></item><item><title><![CDATA[登峰造极之树——Splay伸展树]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77639045</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77639045</guid><author>no1_terminator</author><pubDate>Mon, 28 Aug 2017 10:04:57 +0800</pubDate><description><![CDATA[这个splay也是个很有趣的数据结构，它是为了平衡权值二叉树而提出的，却最终不是以权值二叉平衡树的形式被广泛使用，而是去维护序列的区间修改（某些线段树实现不了的区间修改，如区间翻转等），很多萌新在初学splay时都看的是平衡权值二叉树形式的，所以突然接触区间翻转等问题会有困难。这里我就不讲splay的权值平衡树的形式了（网上资料很多），而是主要讲一讲怎么去理解splay去维护区间（几乎没有人解释的]]></description><category></category></item><item><title><![CDATA[登峰造极之树——Size_Blanced_Tree萌新入门教程]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77636427</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77636427</guid><author>no1_terminator</author><pubDate>Mon, 28 Aug 2017 09:42:05 +0800</pubDate><description><![CDATA[先前的博文：旧版SBT教程

洛谷P3369是道模板题，我在洛谷P3369中详细的写了一个题解，这里就直接copy来了。当时写的时候把zig，zag表示的旋转方向弄反了，大家将就这看吧。大家自己打的时候就把zig改成left_rotate,把zag改成right_rotate。

184ms / 3.15MB

代码：2.61KB C++11

时空以及编程复杂度都还好吧= =，大]]></description><category></category></item><item><title><![CDATA[登峰造极之树——左偏树]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77607265</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77607265</guid><author>no1_terminator</author><pubDate>Sat, 26 Aug 2017 21:42:17 +0800</pubDate><description><![CDATA[左偏树其实就是个堆，而且是个可并堆，可并堆是指可以在O(logn)的时间内完成两个堆的合并的堆结构。显然，二叉堆虽然实现容易，并且好理解，但是合并需要O(n)的时间。


左偏树不是一个完全二叉树，更不是一个平衡树，顾名思义，它的左儿子的比重应该大于右儿子。
那么在一个树中我们如何确定左儿子与右儿子的比重大小关系呢？
我们可以一个定义：距离。
我们定义一个左偏树的距离是其根节点到右儿子]]></description><category></category></item><item><title><![CDATA[网络流征程——ISAP算法]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77587447</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77587447</guid><author>no1_terminator</author><pubDate>Fri, 25 Aug 2017 22:21:30 +0800</pubDate><description><![CDATA[叹：真心没时间写博了
问：那你怎么有时间在洛谷上切了4道ISAP的模板题，然后还详细写了题解？
叹：【手动滑稽】


先给了Dinic的说明吧：Dinic详解
ISAP就是在Dinic上再优化。我们考虑Dinic，它其实在DFS回溯时就确定以当起点前点为的最短路层次图已经不适用了，但是Dinic选择放弃这条路，尝试其他的路，然后再bfs一次性重构一个层次图，但其实是没有必要的，因为随着]]></description><category></category></item><item><title><![CDATA[网络流征程——Dinic再详解]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77587278</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77587278</guid><author>no1_terminator</author><pubDate>Fri, 25 Aug 2017 22:09:36 +0800</pubDate><description><![CDATA[旧版链接




//感觉以前写的好敷衍
上次的文章绝大本分摘自别人的博客，这次我自己仔细的分析一下。
首先，简单的FolkFoukerson算法不断的增广时，可能走了太多的反向弧，即做了大量的无用功，所以我们规定了增广的一个条件——每次只增广最短的那条，那么可以保证这条增广路长度不下降，上限是O(n)，如果我们简单用bfs进行增广，这就是著名的EmondKarp（EK）算法，那么整]]></description><category></category></item><item><title><![CDATA[POJ——2481]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77309630</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77309630</guid><author>no1_terminator</author><pubDate>Thu, 17 Aug 2017 10:40:20 +0800</pubDate><description><![CDATA[●Poj 2481
●给你 n 个闭区间，问每一个区间被多少个区间完全包含（完全重合不算）。
●n
●Time Limit : 1s

●Memory Limit : 256MB




这应该算是一类套路题。对于区间覆盖型问题，普及难度的是贪心，再难一点点就是dp，提高难度的算是数据结构维护一下，如果是dp+数据结构，蒟蒻觉得应该要上省选了= =
这里还是一个树状数组搞一搞]]></description><category></category></item><item><title><![CDATA[BZOJ——4240]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77305914</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77305914</guid><author>no1_terminator</author><pubDate>Thu, 17 Aug 2017 10:31:22 +0800</pubDate><description><![CDATA[4240: 有趣的家庭菜园
Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 441  Solved: 220
[Submit][Status][Discuss]
Description

对家庭菜园有兴趣的JOI君每年在自家的田地中种植一种叫做IOI草的植物。JOI君的田地沿东西方向被划分为N个区域，由西到东标号为1~N。IOI草一共有]]></description><category></category></item><item><title><![CDATA[BZOJ——1452]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/77303607</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/77303607</guid><author>no1_terminator</author><pubDate>Thu, 17 Aug 2017 10:20:46 +0800</pubDate><description><![CDATA[好久没写博了= =

描述



输入



产量



样品输入




样品输出

1

2
暗示










统计答案时我们可以考虑维护前缀和，那么做个差就行了，由于颜色数量非常少，所以我们可以考虑对每个颜色单独维护与计算。
而每次修改颜色时，他不会对左上角产生贡献，对右上，左下及右下的前缀和都会产生贡献。这让人]]></description><category></category></item><item><title><![CDATA[构造物品的最小花费]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/53207987</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/53207987</guid><author>no1_terminator</author><pubDate>Thu, 17 Nov 2016 22:44:04 +0800</pubDate><description><![CDATA[2 ． dwarf tower
(dwarf.cpp/c/pas)
【问题描述】
Vasya在玩一个叫做"Dwarf Tower"的游戏，这个游戏中有n个不同的物品，
它们的编号为1到n。现在Vasya想得到编号为1的物品。
获得一个物品有两种方式：
1. 直接购买该物品，第i件物品花费的钱为ci
2. 用两件其他物品合成所需的物品，一共有m种合成方式。
请帮助Vasya用最少的钱]]></description><category></category></item><item><title><![CDATA[两个数列取第k小数]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/53207942</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/53207942</guid><author>no1_terminator</author><pubDate>Thu, 17 Nov 2016 22:40:42 +0800</pubDate><description><![CDATA[1 1 ．第K K 小数
( ( number .cpp/c/pas)
【问题描述】
有两个正整数数列，元素个数分别为N和M。从两个数列中分别任取一个数
相乘，这样一共可以得到N*M个数，询问这N*M个数中第K小数是多少。
【输入格式】
输入文件名为number.in。
输入文件包含三行。
第一行为三个正整数N,M和K。
第二行为N个正整数，表示第一个数列。
第三行为M个正整数]]></description><category></category></item><item><title><![CDATA[捡金币]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/53207516</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/53207516</guid><author>no1_terminator</author><pubDate>Thu, 17 Nov 2016 22:06:27 +0800</pubDate><description><![CDATA[3.捡金币
（coin.cpp/c/pas）
【问题描述】
小空正在玩一个叫做捡金币的游戏。游戏在一个被划分成n行n列的网格状场地中进行。
每一个格子中都放着若干金币，并且金币的数量会随着时间而不断变化。小空的任务就是在
网格中移动，拾取尽量多的金币。并且，小空还有一个特殊技能“闪现”，能帮助她在网格间
快速移动。
捡金币游戏的具体规则如下：在每一秒开始时，每个网格内都会出现一定数量]]></description><category></category></item><item><title><![CDATA[传球游戏]]></title><link>https://blog.youkuaiyun.com/no1_terminator/article/details/53206706</link><guid>https://blog.youkuaiyun.com/no1_terminator/article/details/53206706</guid><author>no1_terminator</author><pubDate>Thu, 17 Nov 2016 20:53:35 +0800</pubDate><description><![CDATA[2.传球接力
（pass.cpp/c/pas）
【问题描述】
n 个小朋友在玩传球。小朋友们用 1 到 n 的正整数编号。每个小朋友有一个固定的传球
对象，第 i 个小朋友在接到球后会将球传给第 a i 个小朋友，并且第 i 个小朋友与第 a i 个小朋
友之间的距离为 d i 。
一次传球接力是这样进行的：由一个小朋友发球，将球传给他的传球对象，之后接到球
的小朋友再将球传给自己的]]></description><category></category></item></channel></rss>