自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

翻译 CEOI2011 mat solution中文翻译

这个问题描述了一个字符串匹配的变种问题。给定两个串,模式串p[1..n]和文本串t[1..m]。任务是找出所有的位置j,1 而且,模式串p不是直接给出来的。给定一个数列s来描述p:s1是p中最小的元素,s2是第二小的……任意一个等于输入的p都是等价的,所以我们假定p是1..n的一个排列。这种表示很容易由s在O(n)计算出来。在大部分模式串匹配问题中,模式串与母串在位置j匹配当且仅当p=t[

2011-10-31 20:30:24 778

原创 平衡树以及序列操作

从今天起,决定:平衡树、序列操作都用双旋非递归splay,主要是各种特判少,弹性大,应用面广,这点比较爽。splay参考了很多人的写法,最后决定为了优美,用了struct,儿子指针用了一个数组,感觉还很不错,以前的调试问题,由于现在能够一遍写对了,所以也就不存在了。双旋采取的是自顶向下式的,也是为了常数着想。下面就是我的NOI05 sequence代码,以后估计不会再写这个题了,刷过几

2011-10-30 22:14:51 764 1

原创 单旋递归大常数splay

show show我的单旋递归大常数splay。很蛋疼的rotate把lc和rc两个数组进去了。题目:2010省队集训,unstable不稳定匹配。#include #include #include #include #include #include #define maxn 1150000#define maxm 1150000#define pri

2011-10-29 10:27:21 990 1

原创 poj2777

这个题是个线段树的练手题,想当年调试这个题的时候调得要吐血了。。当年总结出来的经验是:随时随地释放标记。但是当年的标记有个很大的bug,就是我只是释放标记,没有更新线段树。因此每次访问一个节点时还得看看是否有标记没有释放。这几天为了写coci2011 sequence,我只好

2011-09-06 21:33:18 1041

原创 来自cqx的dp神题。。

这几天忽然想起了cqx的一道dp题,似乎很难。反正也闲来无事,于是就做了做。然后,完全被虐了。。题目来源于shtsc2010,舞会。题目大意为,给定n个男生身高为B[i],n个女生身高为G[i],求有多少种搭配方式,使得至多k对舞伴之间,女生比男生高。cqx有两种dp方式,我是按第一种方式来dp的。现将B[i],G[i]升序排序,定义状态f[i,j]为男女各前i个人,女生刚好比男生高j

2011-09-01 09:16:20 842

原创 横空出世!新型凸包!无限缩行!奇丑无比!首创“砖头凸包”!

这就是全新的凸包求法!只有6行!!!都缩成一砣屎了!!!咆哮一下!!8.27更新:只有5行了!void qhull (int l, int r, node a, node b, node c){  if (l > r) return;  int i = l

2011-08-25 22:37:36 1501 4

原创 km

为了纪念我写错了多年的km,我决定保留下来。。int find (int x){ int y, t; for (y = 1, chkx[x] = tms; y <= n; ++y) if (chky[y] != tms) if ((t =

2011-08-25 17:29:48 472 2

原创 近几天的悲剧合集

首先,前天晚上鼓起勇气写fhq的K凹凸序列,写来写去,它竟然给我超时。好伤心的。后来,猛然间,发现我的左偏树的combine是这么写的:int combine (int i, int j){ if (key[j] > key[i]) swap (&i, &j

2011-08-25 08:41:38 619 1

原创 变种串匹配

题目请见CEOI2011 matsolution请见CEOI2011 solution注:按题解的方法,如果不要排序b,就可以达到O(n+m)的时间复杂度!code:#include #include #define maxn 1000010#define

2011-08-22 15:11:12 453

原创 NOI题目总结

总体来说,这次NOI的题目并不难,想拿点分还是很简单的。day1只需75+100+40=215,day2也只需100+58+75=233,即可轻松进集训队。day1:rabbit:拿了75分马上走人即可。car:稍微写个调整,dp也行。type:暴力kmp匹配即可

2011-08-22 09:39:26 1567

原创 FFT & DFT

记得以前初期看FFT的时候,直接把DFT略过了,然后看了半天也没看懂。现在重新开始看DFT,先由公式开始看,然后自己把FFT最关键的一个公式:X[i] = G[i] + W[i] * H[i]重新推了一遍。开始的时候想写漂亮一点,想略过reverse bit,于是想用下面这个图:

2011-08-15 23:40:35 1056 1

原创 树的分治

我人生中第一个树的分治终于写好了。看以前的论文(QZC神牛的论文),感觉不是很高深,但是准备写了却发现各种bug依次而来。总想把常数写小一点,但是每次发现好些点的都是常数大的。算了,就好些点算了,感觉也不错,只写了80+行,写的也很漂亮,自己挺喜欢的。这估计是我dfs写的

2011-08-05 16:15:07 932 2

原创 prime

写几个比较好记的素数:101,103,107,1091009,10007,10009,100003,1000003,10^8+7,10^9+7。

2011-07-23 22:21:37 487

原创 SPFA

突然发现我的spfa速度快,空间小,代码短,真可谓是居家旅行之必备呀。。空间:一个queue[maxn],dist[maxn]足以。注:已经加了slf优化。void spfa (){ memset (dist, 0x3F, sizeof (dist)), d

2011-07-18 14:47:08 512 1

原创 字符串。。

一直以为strstr效率很不错,今天看了一下代码,被震撼到了。。先贴一个注释:/* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the mi

2011-07-14 15:45:34 841

原创 Matrix(THUOI2011)

这个题出的很不错……伪装的很好!想,如果当年做过employee该多好~一个极度无语的网络流,伪装成高斯消元……这个思想值得借鉴。。如果要做这个题,建议先做employee,体会连边方式,可以参考napkin。这几个题都有共同点,值得一做。核心:把未知量看成边,把方程看成点,最大

2011-07-11 19:57:14 533

原创 树链剖分(QTREE)

只敢说写过了这个题,下次能不能写过就靠运气了。发现不是很难调,代码量也还好,只写了140+行,3665B,但速度奇慢,也许是常数太大。。照例代码,各位神犇可以直接忽视我的缩行:#include #include #define maxn 10010#define tail

2011-07-09 22:19:16 950

原创 KM算法。。

好伤心的,我的KM写错了。。 想当年开始学km,为了coding complexity,我决定写和匈牙利算法差不多的dfs版,尽管我知道dfs版比bfs慢得多……但是没办法,好写呀。。mlj给出的那个模板实在是快,但是实在是难记,稍不注意就写错了……还是dfs好。。加了slack,也没见到慢到哪里去。。 但是,某天,我做一个poi题的时候,一开始想法差不多了,但用了mincost

2011-06-29 22:30:00 497

原创 poj3580 SuperMemo

一看就知道是splay。。其实是专门为了练splay而写的。。还是比较好写的,起码不要维护N个信息。。代码也不是很长,只有166行。维护的信息少了,collect 过程自然就舒服了。 Submit1:果断WA。。Submit2:AC。因为拿了hty的程序拿来对拍。。对拍果然是个很强大的东东。犯了N个低级错误,原因是对于arrange过程的乱用。splay主过程很漂亮,基本就是模板了,好

2011-06-24 21:19:00 688

原创 noi05 sequence 第二版

省选已经过了,感谢老向、谢老师以及mt的帮助,让我卡线进了。一试本来只有130的,后面mt改了数据,让我多过了两个点(骗一条链的情况),再加上二试一题降了40分,总体来说卡线过。早知道小点暴搜,大点贪心了。。。真伤心。。。 闲来无聊,又写了一遍sequence。把代码缩短了。 #include #include #include #define maxnode 5000

2011-06-19 17:16:00 437

原创 poj2887

这个题有很多种做法,可以用块链,平衡树,线段树。我不会块链,也不想写平衡树(常数大),所以我选择写线段树。这其实可以看成是一个离线回答了,先把所有输入全部读入,从后往前模拟插入,得到最后的序列,然后在从前往后,处理每个询问。这也还算简单,毕竟这个是平衡树的两个基本操作,但写了线段树,常数还是很大(写的悲剧了),只有395ms,不知道到几百名之后了……但是这种思想似乎还是不错的。一开始交上去re,改大数组,wa,然后在这里使劲拍,硬是没发现错,然后重新提交,ac。#include #define maxl

2011-05-27 16:28:00 744 1

原创 noi07 count

<br />今天写了一天,才写了两道题,效率太低了……<br /> <br />为了学连通性状压dp,我决定从简单的入手,听说这个题比较简单,ok,就拿你开刷了。<br />从下午2点开始写,写到晚上8点,终于写完这个“简单”的题了……吐血。。<br /> <br />主程序很简洁,比较纠结的是这两个dfs。我是分两次处理的,第一次计算hash,第二次计算转移矩阵,特纠结。<br />写完一看,其实也不长,只有117行,比rank都还少……<br /> <br />#include <stdio.h>#

2011-05-21 20:18:00 500

原创 rank

<br />dynamic ranking……done!<br />only 160lines!less than noi2005 sequence! easier to write & think!<br /> <br />ok...now, trees in trees is not so difficult... at least in thinking...<br /> <br />here is the code:<br /> <br />#include <stdio.h>#include

2011-05-21 11:08:00 413

原创 Dancing Links

<br /> <br />xqz出的一套题中的一个,没想到是搜索……<br />一开始不敢写,后来看到何天扬的比std快,他用的是dancing links。为了一探究竟,我也来看看这神奇的dancing links。<br />看了秋哥面前小菜的Knuth的原文,历经千辛万苦,经历艰难险阻,看了杂七杂八的源码,最后终于写出一个dancing links了……<br />第一次测,只过了两个点,其余全部tle。一查,发现循环写错了,导致全部死循环……<br />改了之后,重新测,秒了std……<br />s

2011-05-16 21:45:00 1649 4

原创 APIO2009——oil

简直就是一个暴力动归,太无语了……比noip2010tortoise还暴力。以前我一直以为,for最多的一个程序是以前我写过的一个tarjan缩点+dp的题,但是,这个题改变了我对for的看法,太多了……话说这个题,我一开始暴力实现用了10.xx秒,然后看了前面的编译,用了-O2开关,速度达到了7.74s,然后优化读入,没开编译开关,总速度达到了5.xx秒,最后两个一起上,总速度3.24s,秒掉一切Pascal!开始他们还说要出一个题,用巨型读入让C/C++TLE掉,如今看起来,有点困难……要怪也只能怪sc

2011-05-04 17:04:00 1629 1

原创 被splay纠结了……

<br />想写个splay,看过hyy的splay,写的还算好,再看看秋哥的,回头看看我的splay,速度奇慢,排序700+个节点,splay用了48s,qosrt只用了8s,还包括了文件输入输出……<br />算了,我的splay还不知对错呢……

2011-05-03 21:31:00 692 3

原创 还原——非常无语……

原题(提交答案式题):还原鉴于上面几道题目太‘水’,怕各位大牛半小时切完后没事做,因此补上这道‘难’题让大家打发时间。题目描述     一个包含N个数的序列A,定义B:                    Bi = max{Bj} + 1  {Aj         现在有一个序列N=500000,我将对应的B1至BN告诉你,看你能不能猜出这个序列。Your Task 本题为提交答案式题目,提供的输入文件revert.in中按题目描述给出B1至BN,你需要提供一个输出文件 revert.out ,在一行按顺

2011-05-01 22:23:00 605 2

原创 PACMAN吃毛豆

前几天做这个题,由于写的太差了,导致我写了9个版本,直到最后一个才过掉……数一下我的几个版本:ver1:考试时写出的第一版,用的是一个动态规划思想,但是调不对,放弃……ver2:考试时写的第二版,用网络流建模,建模方法:若从i能到j,就从i向j连一条费用为-1,容量为1的边。每个点向汇连一条容量为1、费用为0的边,源向每个点连一条费用为-1、容量为1的边,超级源向源连一条费用为0、容量为2的边,求超级源到汇的费用流。WA掉。ver3:看了解题报告后写的一个版本,改了建模方法,拆点,若从i能到j,就从i+n向

2011-04-12 19:45:00 671 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除