
数据结构
文章平均质量分 80
__Wa_ff_
这个作者很懒,什么都没留下…
展开
-
超市促销 treap or hash
突然发现几月前刷的此题本着刷道水题的想法我就用treap虐了它一遍题目描述: 促销活动遵循以下原则:“参与本活动的顾客,应将自己的个人信息写在所付帐单背面,并将账单投入指定的箱子。在每天的销售结束后,箱子中消费金额最大和最小的两张账单将被选出。消费最多的顾客将得到一笔奖金,奖金的数目等于两张账单金额之差。为了避免因为一次消费而得到多笔奖金,依照以上原则选出的两张账单将不原创 2012-09-04 21:19:40 · 948 阅读 · 0 评论 -
【链表启发式合并】HNOI2009 梦幻布丁
WC2011mt特意强调了链表其中就有这样一道题Task pudding 【题目描述】 现在有 n 个布丁排成一排,每个布丁都有一个正整数颜色。 有 m 个操作: 第一种操作 1 x y 将所有颜色为 x 改为颜色 y。 第二种操作 2 询问当前有多少段颜色。 【输入数据】 第一行两个正整数 n,m。 下面一行,n 个正整数,表示一排的布丁。原创 2012-11-14 14:34:08 · 1124 阅读 · 0 评论 -
【BZOJ1015 || JSOI2008】求联通块的个数
题面:给定一个无向图,求联通块的个数用并查集是非常好做的判代表元个数即可进阶:给定一个无向图,求联通块个数。每轮删除一个点,与之连接的边断开,输出联通块个数。依然是并查集,不过要逆着做。建图前只填加不删的点和必要的边,在每轮添加一个点,求出联通块个数,倒序输出即可。http://61.187.179.132/JudgeOnline/problem.php?id=1原创 2012-08-29 11:00:51 · 1831 阅读 · 0 评论 -
调整思想的运用
丢一道利用调整思想解的好题【题目描述】 long long ago,D国受到了一条恶龙的袭击,为了保卫人民的生命财产安全,D国第一勇士盾盾挺身而出,与这条恶龙决一死战。这个战斗的过程可以看成由n个回合组成,对于每一个回合,盾盾先行动,恶龙再行动。战斗一开始时,盾盾有A点血,恶龙有B点血。盾盾有3个技能:ATTACK:盾盾会向恶龙发起进攻,对恶龙造成X点伤害DEFEND:盾盾原创 2012-10-03 20:46:00 · 1457 阅读 · 4 评论 -
【线段树+离散化】求逆序对数目
题目如下第三题:lyp 的密码(lyp) 【题目描述】 众所周知,lyp 喜欢以用各种方式折磨别人为乐,这次,他趁 wars 不在时在他的电脑上挂了一把神奇的锁,这把锁需要一串巨长无比的数字密码才可以解开,这 个密码由 lyp 自己保管,这样 wars 就没法 Kingdom Rush 了。但 wars 设法从 lyp 的脑袋中挖出了有关密码的信息,这些信息是一列非负整数{A原创 2012-10-18 20:37:22 · 2106 阅读 · 0 评论 -
【左偏树】应用
最近见到有人再度提起“左偏树”这个词我就重新写了一遍,不过是用与以前不同的动态结构写的,同时也决定以后写这个用动态结构!而且也学习了内存池免去new节点这个很酷的方法!//插一下,讲下内存池node re[maxn], *tot = re;利用一个已经分配了地址的re数组节省new的时间之后要新建节点则*(++tot) = (node) {中间填初始值};//不原创 2012-11-04 20:53:46 · 913 阅读 · 0 评论 -
并查集小拓展
估计要明晚才写得完,于是暂时持续更新。所谓拓展,肯定和简单地用并查集去维护联通性不同。较为简单的联通性问题如: http://blog.youkuaiyun.com/z635457712a/article/details/79191981. 维护一种相对的信息,用不规范的说法就是带权值的并查集Lyp 的战斗记录众所周知,我们的 lyp 神犇外号叫 Altman,的确,在另一个平行宇宙,l原创 2012-10-01 21:59:08 · 684 阅读 · 0 评论 -
线段树~总结下吧
为什么我比较喜欢线段树呢因为线段树容易写,万一写错了还容易调试能以优秀的效率完成一些比较水的操作如:单点更新(增减, 替换等)O(logn)查询区间(最值,求和等 )O(logn)但只能查询区间的话明显是不够的而修改区间用单点更新的方法复杂度就不再优了于是我们引进一种lazy标记, 也可以叫可持续化这个时候再谈修改区间, 无论是替换, 增减, 求和, 异或就无压原创 2012-10-02 13:54:52 · 961 阅读 · 0 评论 -
Dancing links ? Dancing links !
某次做JSOI的图论题虐报其他人爆搜程序(废话)原因就是利用了Dancing links基础-->>双向链表 !给出一个双向链表的模版#include #include using namespace std;const int maxn = 100000 + 5;class Dancinglinks{ public : void init()原创 2012-09-06 22:23:18 · 527 阅读 · 2 评论 -
巧用队列的某题
题目描述: 有 N 个时间段,某个时间段可能包含其它时间段。 请找出能包含其它时间段最多的那个段,并计算出它包括的其它时间段有多少? 数据范围 1 <= N <= 25,000 1 <= 时间段开始和结束点 <= 2,000,000,000 输入文件(cover.in): 第 1 行:一个整数 N原创 2012-09-04 11:09:07 · 776 阅读 · 3 评论 -
哈夫曼树(haffman tree)的某题
今天本弱找到了一个过去的盲点,haffman tree。写了几个小时才AC, 而且代码长度又被虐, 于是……。电报公司 code 小明最近新开了一家电报公司。为了在激烈的市场竞争中获取胜利,他果断地找到传说中 X 博士,从他那里买下了传说中的新式电报机。与以往的 2 进制编码机器不同,这台新式的电报机是采用 3 进制编码的。而且,为了尽可能地节约成本,我们要采用尽量好的方原创 2012-09-02 22:18:41 · 900 阅读 · 0 评论 -
【BZOJ1098 || POI-XIV-BIU】链表
【题目描述】http://main.edu.pl/en/archive/oi/14/biuhttp://61.187.179.132/JudgeOnline/problem.php?id=1098给出一个图(N个点,M条边),让你把此图分成尽可能多的集合,满足任意不在同一集合的点之间都有边相连。(N 【简要分析】可以想到答案为原图的补图的联通块个数,证明如下:原创 2012-12-02 13:33:41 · 2087 阅读 · 0 评论