<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[roosephu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/roosephu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; roosephu]]></copyright><item><title><![CDATA[CEOI2011 mat solution中文翻译]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6922688</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6922688</guid><author>roosephu</author><pubDate>Mon, 31 Oct 2011 20:30:24 +0800</pubDate><description><![CDATA[这个问题描述了一个字符串匹配的变种问题。给定两个串，模式串p[1..n]和文本串t[1..m]。任务是找出所有的位置j,1 
而且，模式串p不是直接给出来的。给定一个数列s来描述p：s1是p中最小的元素，s2是第二小的……任意一个等于输入的p都是等价的，所以我们假定p是1..n的一个排列。这种表示很容易由s在O(n)计算出来。
在大部分模式串匹配问题中，模式串与母串在位置j匹配当且仅当p=t[]]></description><category></category></item><item><title><![CDATA[平衡树以及序列操作]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6919735</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6919735</guid><author>roosephu</author><pubDate>Sun, 30 Oct 2011 22:14:51 +0800</pubDate><description><![CDATA[从今天起，决定：平衡树、序列操作都用双旋非递归splay，主要是各种特判少，弹性大，应用面广，这点比较爽。
splay参考了很多人的写法，最后决定为了优美，用了struct，儿子指针用了一个数组，感觉还很不错，以前的调试问题，由于现在能够一遍写对了，所以也就不存在了。
双旋采取的是自顶向下式的，也是为了常数着想。
下面就是我的NOI05 sequence代码，以后估计不会再写这个题了，刷过几]]></description><category></category></item><item><title><![CDATA[单旋递归大常数splay]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6916402</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6916402</guid><author>roosephu</author><pubDate>Sat, 29 Oct 2011 10:27:21 +0800</pubDate><description><![CDATA[show show我的单旋递归大常数splay。
很蛋疼的rotate把lc和rc两个数组进去了。
题目：2010省队集训，unstable不稳定匹配。



#include 
#include 
#include 
#include 
#include 
#include 

#define maxn 1150000
#define maxm 1150000
#define pri]]></description><category></category></item><item><title><![CDATA[poj2777]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6754833</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6754833</guid><author>roosephu</author><pubDate>Tue, 06 Sep 2011 21:33:18 +0800</pubDate><description><![CDATA[这个题是个线段树的练手题，想当年调试这个题的时候调得要吐血了。。
当年总结出来的经验是：随时随地释放标记。但是当年的标记有个很大的bug，就是我只是释放标记，没有更新线段树。因此每次访问一个节点时还得看看是否有标记没有释放。这几天为了写coci2011 sequence，我只好]]></description><category></category></item><item><title><![CDATA[来自cqx的dp神题。。]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6737995</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6737995</guid><author>roosephu</author><pubDate>Thu, 01 Sep 2011 09:16:20 +0800</pubDate><description><![CDATA[这几天忽然想起了cqx的一道dp题，似乎很难。反正也闲来无事，于是就做了做。然后，完全被虐了。。
题目来源于shtsc2010，舞会。题目大意为，给定n个男生身高为B[i]，n个女生身高为G[i]，求有多少种搭配方式，使得至多k对舞伴之间，女生比男生高。
cqx有两种dp方式，我是按第一种方式来dp的。
现将B[i]，G[i]升序排序，定义状态f[i,j]为男女各前i个人，女生刚好比男生高j]]></description><category></category></item><item><title><![CDATA[横空出世！新型凸包！无限缩行！奇丑无比！首创“砖头凸包”！]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6719991</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6719991</guid><author>roosephu</author><pubDate>Thu, 25 Aug 2011 22:37:36 +0800</pubDate><description><![CDATA[这就是全新的凸包求法！只有6行！！！都缩成一砣屎了！！！咆哮一下！！
8.27更新：只有5行了！


void qhull (int l, int r, node a, node b, node c)
{
  if (l > r) return;
  int i = l]]></description><category></category></item><item><title><![CDATA[km]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6719204</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6719204</guid><author>roosephu</author><pubDate>Thu, 25 Aug 2011 17:29:48 +0800</pubDate><description><![CDATA[为了纪念我写错了多年的km，我决定保留下来。。


int find (int x)
{
  int y, t;
  for (y = 1, chkx[x] = tms; y <= n; ++y)
    if (chky[y] != tms)
      if ((t =]]></description><category></category></item><item><title><![CDATA[近几天的悲剧合集]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6717012</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6717012</guid><author>roosephu</author><pubDate>Thu, 25 Aug 2011 08:41:38 +0800</pubDate><description><![CDATA[首先，前天晚上鼓起勇气写fhq的K凹凸序列，写来写去，它竟然给我超时。好伤心的。后来，猛然间，发现我的左偏树的combine是这么写的：

int combine (int i, int j)
{
  if (key[j] > key[i])
    swap (&i, &j]]></description><category></category></item><item><title><![CDATA[变种串匹配]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6708668</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6708668</guid><author>roosephu</author><pubDate>Mon, 22 Aug 2011 15:11:12 +0800</pubDate><description><![CDATA[题目请见CEOI2011 mat
solution请见CEOI2011 solution
注：按题解的方法，如果不要排序b，就可以达到O(n+m)的时间复杂度！
code：
#include 
#include 

#define maxn 1000010
#define]]></description><category></category></item><item><title><![CDATA[NOI题目总结]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6707465</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6707465</guid><author>roosephu</author><pubDate>Mon, 22 Aug 2011 09:39:26 +0800</pubDate><description><![CDATA[总体来说，这次NOI的题目并不难，想拿点分还是很简单的。day1只需75+100+40=215，day2也只需100+58+75=233，即可轻松进集训队。
day1：
rabbit：拿了75分马上走人即可。
car：稍微写个调整，dp也行。
type：暴力kmp匹配即可]]></description><category></category></item><item><title><![CDATA[FFT & DFT]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6690238</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6690238</guid><author>roosephu</author><pubDate>Mon, 15 Aug 2011 23:40:35 +0800</pubDate><description><![CDATA[记得以前初期看FFT的时候，直接把DFT略过了，然后看了半天也没看懂。现在重新开始看DFT，先由公式开始看，然后自己把FFT最关键的一个公式:X[i] = G[i] + W[i] * H[i]重新推了一遍。开始的时候想写漂亮一点，想略过reverse bit，于是想用下面这个图：]]></description><category></category></item><item><title><![CDATA[树的分治]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6663533</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6663533</guid><author>roosephu</author><pubDate>Fri, 05 Aug 2011 16:15:07 +0800</pubDate><description><![CDATA[我人生中第一个树的分治终于写好了。

看以前的论文（QZC神牛的论文），感觉不是很高深，但是准备写了却发现各种bug依次而来。总想把常数写小一点，但是每次发现好些点的都是常数大的。算了，就好些点算了，感觉也不错，只写了80＋行，写的也很漂亮，自己挺喜欢的。这估计是我dfs写的]]></description><category></category></item><item><title><![CDATA[prime]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6628671</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6628671</guid><author>roosephu</author><pubDate>Sat, 23 Jul 2011 22:21:37 +0800</pubDate><description><![CDATA[写几个比较好记的素数：101，103，107，1091009，10007，10009，100003，1000003，10^8+7，10^9+7。]]></description><category></category></item><item><title><![CDATA[SPFA]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6614235</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6614235</guid><author>roosephu</author><pubDate>Mon, 18 Jul 2011 14:47:08 +0800</pubDate><description><![CDATA[突然发现我的spfa速度快，空间小，代码短，真可谓是居家旅行之必备呀。。
空间：一个queue[maxn]，dist[maxn]足以。
注：已经加了slf优化。

void spfa ()
{
  memset (dist, 0x3F, sizeof (dist)), d]]></description><category></category></item><item><title><![CDATA[字符串。。]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6606126</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6606126</guid><author>roosephu</author><pubDate>Thu, 14 Jul 2011 15:45:34 +0800</pubDate><description><![CDATA[一直以为strstr效率很不错，今天看了一下代码，被震撼到了。。先贴一个注释：/* Return the first location of non-empty NEEDLE within HAYSTACK, or
   NULL.  HAYSTACK_LEN is the mi]]></description><category></category></item><item><title><![CDATA[Matrix（THUOI2011）]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6598538</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6598538</guid><author>roosephu</author><pubDate>Mon, 11 Jul 2011 19:57:14 +0800</pubDate><description><![CDATA[这个题出的很不错……伪装的很好！想，如果当年做过employee该多好～一个极度无语的网络流，伪装成高斯消元……这个思想值得借鉴。。如果要做这个题，建议先做employee，体会连边方式，可以参考napkin。这几个题都有共同点，值得一做。核心：把未知量看成边，把方程看成点，最大]]></description><category></category></item><item><title><![CDATA[树链剖分（QTREE）]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6595373</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6595373</guid><author>roosephu</author><pubDate>Sat, 09 Jul 2011 22:19:16 +0800</pubDate><description><![CDATA[只敢说写过了这个题，下次能不能写过就靠运气了。发现不是很难调，代码量也还好，只写了140+行，3665B，但速度奇慢，也许是常数太大。。照例代码，各位神犇可以直接忽视我的缩行：#include 
#include 

#define maxn 10010
#define tail]]></description><category></category></item><item><title><![CDATA[KM算法。。]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6575992</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6575992</guid><author>roosephu</author><pubDate>Wed, 29 Jun 2011 22:30:00 +0800</pubDate><description><![CDATA[好伤心的，我的KM写错了。。 想当年开始学km，为了coding complexity，我决定写和匈牙利算法差不多的dfs版，尽管我知道dfs版比bfs慢得多……但是没办法，好写呀。。mlj给出的那个模板实在是快，但是实在是难记，稍不注意就写错了……还是dfs好。。加了slack，也没见到慢到哪里去。。 但是，某天，我做一个poi题的时候，一开始想法差不多了，但用了mincost ]]></description><category></category></item><item><title><![CDATA[poj3580 SuperMemo]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6566612</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6566612</guid><author>roosephu</author><pubDate>Fri, 24 Jun 2011 21:19:00 +0800</pubDate><description><![CDATA[一看就知道是splay。。其实是专门为了练splay而写的。。还是比较好写的，起码不要维护N个信息。。代码也不是很长，只有166行。维护的信息少了，collect 过程自然就舒服了。 Submit1：果断WA。。Submit2：AC。因为拿了hty的程序拿来对拍。。对拍果然是个很强大的东东。犯了N个低级错误，原因是对于arrange过程的乱用。splay主过程很漂亮，基本就是模板了，好]]></description><category></category></item><item><title><![CDATA[noi05 sequence 第二版]]></title><link>https://blog.youkuaiyun.com/roosephu/article/details/6554875</link><guid>https://blog.youkuaiyun.com/roosephu/article/details/6554875</guid><author>roosephu</author><pubDate>Sun, 19 Jun 2011 17:16:00 +0800</pubDate><description><![CDATA[省选已经过了，感谢老向、谢老师以及mt的帮助，让我卡线进了。一试本来只有130的，后面mt改了数据，让我多过了两个点（骗一条链的情况），再加上二试一题降了40分，总体来说卡线过。早知道小点暴搜，大点贪心了。。。真伤心。。。 闲来无聊，又写了一遍sequence。把代码缩短了。 #include #include #include #define maxnode 5000]]></description><category></category></item></channel></rss>