TA

A Lannister always pays his debts

[51nod]算法马拉松18 总结

第一次打马拉松。。 a 一看题。。什么鬼。。 n=4竟然是无解,第一个点给了一个n=5的,好像是构造的挺有规律的样子。。 那就偶数无解,奇数照着他的构造方法写一发吧。。 怎么a了?不管了。。既然结束了还是要回来好好想一下是什么情况的。 偶数肯定是无解的,因为一共有n(n−1)2n(n-...

2016-09-24 15:20:51

阅读数:1053

评论数:4

[bzoj3720]Gty的妹子树 解题报告

大概看了一眼网上的题解,跟块爷一样都写的会被卡的分块。(反正块爷出的题也不会卡自己。。) 这里说一种比较科学的做法。就是用块链维护dfs序。 维护每个节点按dfs序是在哪个块的哪个位置,对每个块维护块中节点的最浅深度、它的下一个块是哪个块,块中节点按dfs序排序的序列,按权值排序的序列。 一...

2016-04-22 21:55:14

阅读数:978

评论数:0

[poj1741]tree 解题报告

经典的点分做法就不说了(然而我写点分t了。。)线段树/平衡树启发式合并的话,就是维护子树每个节点到子树跟的距离,打一个整棵子树的标记,然后按dfs/bfs序启发式合并,合并之前先查询一下答案即可。 如果用线段树启发式合并的话,时间复杂度是O(TNlog2N)O(TN\log^2N)的,与点分一样...

2016-04-21 17:31:11

阅读数:702

评论数:0

[spoj11482]Count on a trie 解题报告

一开始以为是AC自动机的题,发现一直不会求T的AC自动机。后来想到可以求S的sa,就发现简单多了! 我们可以dfs S,然后对于S中的一个节点处理它的询问。(二分+hash比较大小) 那么问题就在于怎么维护T的hash。本来想用可持久化块链,发现mle了。就只好学了下treap。 treap...

2016-04-18 09:49:06

阅读数:699

评论数:0

[bzoj4373]算术天才⑨与等差数列 解题报告

先来说一下傻逼的做法。 考虑如何约束等差数列这个条件,如果k=0,就是[最大值=最小值];否则就是区间中[相邻两数差的绝对值的gcd=k][(最大值-最小值)/(r-l)=k][区间中没有相同元素]。 gcd可以在O(log2n)O(\log^2n)的时间复杂度很容易搞出来,所以问题就在于怎么...

2016-04-18 08:36:36

阅读数:947

评论数:0

[bzoj2555]substring 解题报告

考虑用splay维护sa,每次比较的时候二分+hash。注意要在两端加-∞和+∞的点。 时间复杂度O((n+q)log2n+m)O((n+q)\log^2n+m)(n是数据总长度,m是询问总长度) 但是普通的hash的话需要用long long+除法运算,一个点需要跑6s。所以改成自然溢出,瞬...

2016-04-13 17:36:15

阅读数:608

评论数:0

LCT学习笔记

一、什么是势能分析? 势能分析首先要有一个势能函数F(S),S是一个数据结构集合,是你要分析的所有数据结构的集合,比如说你要分析一坨splay/lct森林的时间复杂度,那么f就是splay/lct森林的势能函数,而不仅仅是一棵splay/lct,虽然它也可以是。 对于每一次操作,我们进行这样的...

2016-03-31 21:44:04

阅读数:1395

评论数:0

[ZJOI2012]网络 解题报告

这题还是非常奇怪的,在考试的时候做了这题的弱化版,去了求最值。 这道题要求维护一坨链,显然是可以直接上splay的,所以我考试的时候直接写了splay,结果因为两个bug调了5个小时。 求最值的话,当然也可以直接上splay。。但是那样的话很麻烦,因为没法在端点加点,所以要很复杂的讨论。直接用...

2016-03-27 15:44:39

阅读数:634

评论数:0

[UVA10181]十五数码解题报告

对于有解的情况,只需ID-A*即可。 首先谈一谈估价函数,估价函数表示的应该是对期望步数的下界。我一开始想的是用所有数现在的位置到应该在的位置的曼哈顿距离和,考虑到一次交换最多令其减少2,所以还要把它除以2。后来看了题解发现所有题解都是用的所有非0数的现在的位置到目标位置的曼哈顿距离和,...

2015-05-05 21:44:18

阅读数:1508

评论数:0

[NOI2005]维护数列 解题报告

①学会了维护最大连续子序列,跟最长全0连续子序列其实差不多;我一开始做麻烦了(用了前缀和。。)。 一些需要注意的细节: ②插入新节点的时候要注意维护其儿子节点的父指针; ③pushdown的位置不是随便放的,它应该放在对该节点进行询问之前。 ④覆盖标记应该设为无穷,而不是0;因为0也可能是...

2015-01-24 07:57:43

阅读数:584

评论数:0

[ZJOI2007]报表统计 解题报告

[ZJOI2007]报表统计 Time Limit: 15 Sec  Memory Limit: 162 MB Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作。今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一。经过仔细观察,小Q发现统计一...

2015-01-18 11:50:12

阅读数:787

评论数:0

zkw Splay学习笔记

最近。。 最近心里颇不平静。 最近花了三天时间学了zkw Splay,发现这玩意儿真TM难写;加上各种Code Trick也还是写了好久,还有各种错误,一直在炸。 一些心得: ①维护size时不需要考虑太多东西,只需要改变孩子指针后直接用孩子的size维护即可,注意要在两个地方维护: 旋转的...

2015-01-12 21:45:49

阅读数:1098

评论数:0

[CODEVS]数据结构系列 解题报告

用这两道题学了下Splay,也加深了对其的理解。 平衡树的标记与线段树的标记不同,在平衡树中,所有被访问的节点一定不能有标记;否则将其Splay后就找不到其原先的左右子树了。 代码(数据结构1): #include #include #include #include using namespac...

2015-01-11 20:47:31

阅读数:694

评论数:0

[NOI1999]内存分配 解题报告

[NOI1999] 内存分配 时间限制:1 s 内存限制:128 MB 内存是计算机重要的资源之一,程序运行的过程中必须对内存进行分配。 经典的内存分配过程是这样进行的: 内存以内存单元为基本单位,每个内存单元用一个固定的整数作为标识,称为地址。地址从0开始连续排列,地址相邻的内存单元被认为是...

2015-01-10 11:03:41

阅读数:1238

评论数:0

[Tyvj1728]普通平衡树 解题报告

用这道题学了一下Splay,结果在删除的时候遇到问题。 我删除节点的方法是把待删除节点splay到根上,然后把它的后继splay到根的右儿子上,然后将其左儿子接到右儿子上——结果!就在这里!犯了一个错误,我只维护了右儿子的左儿子指针,却忘了维护左儿子的父指针! 这加上前几天做的派遣。。应该说都...

2015-01-09 20:59:57

阅读数:656

评论数:0

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