数据结构
文章平均质量分 76
huyuncong
这个作者很懒,什么都没留下…
展开
-
【ctsc2012】solution
梭哈游戏题意:给定一系列比较规则,并给出A,B当前手牌,讨论牌抽完后,A能赢B的概率比较规则比较复杂,可以先判牌形,再将花色大小压成一个数,排序后我们就只要统计,在某副手牌之前的手牌中,有多少个与其无重复手牌,判重工作可以由容斥原理和hash表完成,对于每副手牌需要2^5判断复杂度为o(手牌数*2^5),手牌数最多只有c(51,5)5s时限还算充裕,对于hash,我们考虑用53进制压位,因原创 2012-05-19 16:57:28 · 2072 阅读 · 0 评论 -
【差分主席树】zjoi2013 k大数
这道题的解法挺多,值域线段树套区间线段树,区间线段树套值域线段树(目前想到的是zkw的标记永久化),cdq分治相对好写一点的就是维护差分主席树,每个位置维护与前一个位置的数集差分,修改就可以看做是单点修改,然后再反推前缀和http://blog.csdn.net/huyuncong/article/details/6440979#include #include #includ原创 2014-06-24 21:43:56 · 780 阅读 · 0 评论 -
【原始对偶费用流ver2.0】hdu4744
这场比赛我就不多少什么了。。。几乎整场都在写计算几何,恰好三维计算几何又是我的软肋,后面的题基本都没看。。。建图就不多说了,挺水的,标算不是费用流,但我听说有人zkw费用流过了,于是我就写个原始对偶费用流,但是居然超了,本机测试60组极限1050+ms==。。。于是进行优化,lyp跟我说过一次反向spfa就可以dij下去了,但是自己推了一下,有一个对原图的边修改的过程.考虑i->j,w[i原创 2013-09-17 17:56:56 · 1433 阅读 · 0 评论 -
【动态树】codechef GERALD07
学子讲坛终于弄完了,讲了一次《海尔兄弟》原创 2014-05-01 14:42:07 · 979 阅读 · 0 评论 -
【fhqtreap】航空管制
飞机因为航空管制晚点了一个多小时,原创 2014-04-05 00:04:40 · 1945 阅读 · 0 评论 -
【树的重心维护 动态树】资源运输
上交的寝室没网实在是...据说acm时调试只有5分钟,基本上不用gdb,这点真是硬伤了,一般来说有难度的题目我要么不调试,要么调比较久,看来有必要锻炼静态调试。题意:一开始有n个点,每次可以选择两个点连边,保证每次连边后是一个森林,对于每棵树来说,要选择一个点,树中其他点到它的距离和为此树的权值,要求每次操作后,整个森林中的树的权值和最小。显然每棵树中要求的点是重心,因为考虑不是重心的时候原创 2013-05-17 20:47:10 · 1618 阅读 · 0 评论 -
【dominator tree】 Lengauer-Tarjan algorithm
题意:给定源点,求出源点到其他各点的关键点 Lengauer-Tarjan algorithm按理说这也是个经典算法,跟lca的tarjan和强连通的tarjan都有极其相似之处,但是貌似并没有推广感觉出题比较好出,先求个dominator tree,然后再在上面各种搞,虽然多半会出成一个拼接题...首先有几个链接一些概念http://en.wikipedia.org/原创 2013-11-14 16:13:49 · 3092 阅读 · 0 评论 -
李其乐 免费的馅饼+郭华阳 新一代打鼹鼠
今天做了一道郭华阳出的模拟题,发现竟然和冬令营的答辩试题如出一辙,只改了一点条件,冬令营时就被什么树状数组+平衡树,坐标移位弄得头晕脑胀,一点也没听懂,结果冤家路窄,这次又只拿了40分,T T重新翻ppt,其实只是优化了转移而已,学了解析几何后,对坐标轴理解更加深刻,这两道题也比较容易理解了。有m只鼹鼠出现在一个1 ~ n的长条上。对于第k只鼹鼠,我们用t[k], w[k], x[k]来描述。即在t[k]时刻,会有一只分值为w[k]的鼹鼠k出现在位置x[k]上。现在你有一个锤头,每一时刻它都停留在一个位置上原创 2011-04-30 16:17:00 · 4123 阅读 · 0 评论 -
【树状数组+splay】uva12345
询问一段区间中数字的种类,同时单点修改某一位置的值我们记每一个位置前一个与他相同的位置是f[i],我们相当于询问一段区间中f[i]小于L的数的个数明显的三维偏序,利用树套树解决,虽然不是用的主席树,但是也只用了1s+#include #include #include #include #include using namespace std;setbst[200000原创 2012-09-04 15:45:11 · 1423 阅读 · 6 评论 -
【后缀自动机-后缀树上的维护】hdu4641
每次给字符串加一个字符,并询问当时出现至少k次的子串有多少貌似数据特别水,看网上题解都是暴力过的,所以自然要给出一个不会超时的算法当初考的时候,觉得很难维护,因为每次相当于在后缀树上拆一条边,并加点进去,并维护当根路径上的值,好像只能动态树之类的,即便离线,貌似也要用树链剖分,因此当时就没管了回过头来看,其实还是挺好维护的,甚至只要离线在dfs序上处理就可以了考虑先把后缀树建好,然原创 2013-11-09 15:29:57 · 1493 阅读 · 0 评论 -
【字符串新武器】后缀自动机
发链:http://neroysq.blogcn.com/articles/%E5%90%8E%E7%BC%80%E8%87%AA%E5%8A%A8%E6%9C%BA%E5%88%9D%E6%8E%A2.htmlhttp://blog.sina.com.cn/s/blog_7812e98601012cim.html详细构造见上述链接,此处介绍性质与理解后缀自动机具有两大性质,考虑转原创 2012-05-19 19:33:44 · 10826 阅读 · 13 评论 -
【拓展kmp】
太久不写,考场上都不敢直接敲了...Kuala2011 G#include #include #include #include #include using namespace std;char a[200000],b[200000],ch[200000];int n,m,len,f[200000],t;int main(){ freopen("input.txt原创 2013-11-17 13:47:34 · 920 阅读 · 0 评论 -
三维偏序 树套树&cdq分治
一般的最长上升子序列是二维偏序,所以排序后用线段树维护可以达到nlogn程度,但是如果是三元组呢?因为多了一个偏序关系,所以维护起来相当麻烦。roosephu说了一句经典的:一维快排,二维归并,三维树状数组,就是一维排序x后,再而在快排保证前一段x小于后一段x基础上归并排原创 2011-10-18 14:01:28 · 3869 阅读 · 0 评论 -
【hdu3238】Finding the Most Vital Node of a Shortest Path
题意:给定s,t,求出无向图上,去掉第i个点z原创 2014-07-18 20:42:36 · 857 阅读 · 0 评论 -
【等差数列维护最值】codechef STREETTA
题意:给区间加上一个等差数列,求单点最值,原创 2014-06-28 21:21:08 · 1107 阅读 · 0 评论 -
【ural】
1400:略#include #include #include #include #include #include const int dx[4]={-1,0,1,0};const int dy[4]={0,1,0,-1};const double oo=1e300;using namespace std;struct point{int x,y;};queue原创 2012-12-18 14:30:02 · 988 阅读 · 0 评论 -
【可持久化平衡树】Version Controlled IDE
首先是直接用拓展stl的实现,各种操作原创 2014-10-31 22:09:14 · 1519 阅读 · 0 评论 -
【可持久化数据结构】函数式线段树
clj的论文很不错总体思想就是只赋值不修改,同时充分运用历史版本,也正因为这个特性,所以可以完成在线询问历史版本的功能这东西不同于后缀自动机基本基于原有知识就可以有直观的理解,往往平常想题的时候想到某个思路认为无法实现就直接枪毙,但这些东西恰好用函数式编程就迎刃而解,如果用以前的思维方式很有可能直接滤过,囧的就是明明拿着钥匙却偏偏认为那道门打不开,所以对于此类题目关键就是要贴合函数式编程的原创 2012-05-19 21:05:05 · 7084 阅读 · 10 评论 -
【回文自动机】ural2040
题意:依次添加字符询问增加的原创 2014-11-16 23:17:26 · 2728 阅读 · 4 评论 -
【动态树X脑残错误】hdu5002
本来一个挺简单的一个动态树,结果原创 2014-09-14 10:16:09 · 1045 阅读 · 0 评论 -
【二分图匹配判定+线段树建边】pku1057
首先行列是可以分开考虑的,相两个排列原创 2014-08-15 21:16:21 · 907 阅读 · 0 评论 -
【动态树】hdu4897
两种操作,第一种一条路径的边的颜色取反,第二种将yi ba原创 2014-08-14 15:09:14 · 672 阅读 · 0 评论 -
I'm going to dance 数独问题 poj 3076
dancing link的应用,很奇葩的遇到了传说中的PE16*16的数独问题,dlx即可解决,惊奇的发现高二的师兄们雄踞了pascal的第一版,同样是dancing link,我的速度却只能退居第二版。转换模型——>精确覆盖数独问题中每个元素,每行只出现一次,每列只原创 2011-07-28 22:31:47 · 1245 阅读 · 0 评论 -
舞动的dancing links poj 3740
对于npc问题,我们似乎只能用搜索(或状压dp)。但是,有时候,搜索的期望得分是满分,比如说,当dancing links跳舞的时候。dancing link 作为双向链表,拥有优秀的性质,快速的删除和恢复,任何熟练掌握链表的人都可以轻易上手,更重要的是,它为搜索省去大量原创 2011-05-18 20:54:00 · 1118 阅读 · 5 评论 -
【点分治】hdu4918
用类似qtree4的思想,在点分治的每一层都原创 2014-09-19 16:57:20 · 1606 阅读 · 0 评论 -
后缀数组第二弹
重复次数最多的连续重复子串(spoj687,pku3693)给定一个字符串,求重复次数最多的连续重复子串。#include #include #include #include const int oo=1073741819;int sa[105000],wv[105000],ws[105000],rk[105000],ht[105000],f[105000][18],y[1原创 2012-02-20 21:10:20 · 750 阅读 · 0 评论 -
【除草】一些稍难题
hdu4623通过打表发现很多数字在考虑互质的情况是dengjia原创 2014-07-13 14:16:11 · 859 阅读 · 0 评论 -
【zkw线段树套自顶向下splay】cf44g
考场上队友写这道题tle了,貌似是数组寻址花的时间过久加上splay常数过大因此赛后re一遍,很久没写数据结构,调了老半天,最后9000+ms过了,虽然写得有点冗而且还是没改成指针,但是zkw线段树以及自顶向下splay的常数确实比较小#include #include #include #include #include const int oo=1073741819;usi原创 2013-08-12 20:31:12 · 1107 阅读 · 0 评论 -
【zkw线段树】ural1855
比赛时脑残了,想起去维护前缀和,结果被标记维护恶心到了,其实只要维护每一段就行了,比赛时一条路走到黑,没想起另开一条路维护每一段就只要维护sigma(ai),sigma(i*ai),sigma(i*i*ai)即可最近几次试组队发现码力这东西确实相当重要,毕竟机时只有那么多,如何稳妥快速实现是很重要的。同时,想算法还要更加灵活,有时候想算法就是会脑残一下...#include #inc原创 2013-07-09 20:17:18 · 976 阅读 · 0 评论 -
【2012 Multi-University Training Contest 7】部分题
适应acm赛制看来不是我原先想的那么简单...4360双关键字单源最短路这道题我交了10+次,原因是初始化没取最小值...看来确实是太久没在考试状态下写题了,心中竟然还在紧张#include #include #include #include #include const long long oo=1314520LL*13520LL+1;using namespace原创 2013-06-20 21:17:46 · 905 阅读 · 0 评论 -
k短路
本来很早以前就用线段树写了一遍,但是居然mle了。。。先用dij求各点到汇点的最短路f[i],再从源点bfs A*搜,g[j]:=g[i]+c[i,j];g表示到源点距离,每次扩展都选g[i]+f[i]最小的点,向其他点扩展一种状态而不是点,所以优先队列中的点可能超过n。优先队列可以用堆实现,用线段树会爆空间,但是我用惯了zkw线段树,不会写二叉堆,于是用可并堆实现了。const ma原创 2011-10-29 18:44:47 · 904 阅读 · 0 评论 -
Sequence by 唐迪(不是splay)
(原标题有误,写成spaly)传说是某道国家集训队作业题。但是,做法相当朴素,只不过是离线回答的。事实再次证明,离线在大多数情况下优于在线,其原因在于可以充分利用已经算出的答案进行调整。problem:题目一 题目描述:因为小t喜欢吃糖,所以他经常在桌子上摆上一排彩色的糖。每种糖都用一种特殊的颜色标识,而每种颜色我们用数字1、2、3、……表示。现在小t在桌子上摆原创 2011-07-15 17:45:35 · 1279 阅读 · 0 评论 -
zkw线段树 标记下放
zkw线段树的标记上传好像只能做区间修改的rmq,但标记下放应用面就与朴素线段树差不多了,但是漂亮很多。在进行修改或询问时,我们先将当前区间的标记全部下放,从左右开区间端点从顶向下跑一边下放就是,同时,对于修改后,再从左右区间把祖先更新,zkw的非递归性质发挥的淋漓尽致。其实很好编,下面两道题都是1A、好吧,我又重温了zkw的博客,这种方法不太纯正,但是,暂时还不理解那种标记永久化,所以还原创 2011-10-23 09:10:23 · 2320 阅读 · 0 评论 -
一些背包问题
备战noip ing背包问题其实算np问题,一般的动规算是伪多项式。按时间顺序来吧、、、、1、lmd的搜索匹配在n个数中选若干个数,使其和等于某个数。(n据他自己说,数据范围和有特点、、、、正解的数据范围是暴力的两倍、、、、结果几乎没人看出来。容易看出原创 2011-10-18 14:40:55 · 1264 阅读 · 0 评论 -
ac自动机+矩阵 poj 2778
ac自动机,令人神往的名字。。。ac自动机:http://www.cppblog.com/mythit/archive/2009/04/21/80633.htmlpoj2778:http://hi.baidu.com/%D2%D5%C1%D6010/blog/item/6原创 2011-08-29 21:52:58 · 996 阅读 · 0 评论 -
动态修改询问树上两点距离 poj2763
acm归来应该说又是一次铩羽,发现其他高中的队伍普遍在我们前面,雅礼包揽了前2,我们高三神牛只拿了第6,然后就是我们uracil排到了22位,主要是c题依poj的习惯打了not seekeof结果测评器不认账,死活报wa,然后就是g题,题目数据范围有问题,结果不告诉我们,原创 2011-09-15 22:36:14 · 1187 阅读 · 1 评论 -
平衡的美 treap
平衡~原创 2011-07-29 16:36:16 · 680 阅读 · 2 评论 -
区间子段和系列1
系列题原创 2011-07-19 15:53:25 · 596 阅读 · 0 评论 -
可并堆 poj3016 不平衡的美
左偏树原创 2011-07-25 10:01:40 · 1509 阅读 · 0 评论 -
二维线段树+标记永久化 poj2155
省选后一个月的练手原创 2011-07-10 23:02:03 · 1671 阅读 · 0 评论