
===数据结构===
文章平均质量分 58
DQSSS
蒟蒻
展开
-
【bzoj4551】[Tjoi2016&Heoi2016]树 暴力?树剖+树状数组+二分
Description在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖 先)你能帮帮他吗?Input输入第一行两个正整数N和Q分别原创 2016-04-28 19:50:32 · 1812 阅读 · 1 评论 -
【bzoj2795】[Poi2012]A Horrible Poem hash
Description给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。Input第一行一个正整数n (n<=500,000),表示S的长度。 第二行n个小写英文字母,表示字符串S。 第三行一个正整数q (q<=2,000,000),表示询问个数。 下面q行每行两个正整数a,b (1<=a<=原创 2016-03-31 22:27:28 · 810 阅读 · 0 评论 -
【bzoj2588】Spoj 10628. Count on a tree LCA+主席树
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。 第二行有N个整数,其中第i个整数表示点i的权值。 后面N-1行每行两个整数(x,y),表示点x到点y有一条边。 最后M行每行两个整数(原创 2016-03-19 00:34:43 · 756 阅读 · 0 评论 -
【bzoj3524/2223】[Poi2014]Couriers/[Coci 2009]PATULJCI 主席树
Description给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。Input第一行两个数n,m。 第二行n个数,a[i]。 接下来m行,每行两个数l,r,表示询问[l,r]这个区间。Outputm行,每行对应一个答案。Sample Input7 51 1 3 2原创 2016-03-18 23:02:16 · 691 阅读 · 0 评论 -
【poj2104】K-th Number 分块
DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to r原创 2015-09-19 21:13:39 · 1246 阅读 · 0 评论 -
【poj2104】K-th Number 主席树
DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to r原创 2016-03-18 17:15:31 · 658 阅读 · 0 评论 -
【bzoj2351】[BeiJing2011]Matrix hash表+双hash
Description给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。 所谓01矩阵,就是矩阵中所有元素不是0就是1。Input输入文件的第一行为M、N、A、B,参见题目描述。 接下来M行,每行N个字符,非0即1,描述原矩阵。 接下来一行为你要处理的询问数Q。 接下来Q个矩阵,一共Q*A行,每行B个字符,描述Q个01矩阵。Output你需要输原创 2016-03-29 23:28:41 · 1076 阅读 · 0 评论 -
【codevs4367】控油肛和序列 线段树+暴力
题目描述 Description在儿童节,一个熊孩子来到了哲学的圣城,企图膜拜王♂の哲学。由于熊孩子本性大发,将哲学圣城弄得十分脏乱。控油肛对他非常生气。这也不能说控油肛的脾气差,因为他弄丢了很多重要的东西。尤其是dc最喜欢的哲学序列。幸运的是控油肛记得如何修复。于是乎他必须快一点,在dc敢来之前修复好.最初,控油肛需要创建一个整数的序列a1,a2,…………an。然后控油肛就可以执行以下操作:1.打原创 2016-03-18 10:04:13 · 834 阅读 · 0 评论 -
【bzoj3038】上帝造题的七分钟2 线段树+暴力
DescriptionXLk觉得《上帝造题的七分钟》不太过瘾,于是有了第二部。 “第一分钟,X说,要有数列,于是便给定了一个正整数数列。 第二分钟,L说,要能修改,于是便有了对一段数中每个数都开平方(下取整)的操作。 第三分钟,k说,要能查询,于是便有了求一段数的和的操作。 第四分钟,彩虹喵说,要是noip难度,于是便有了数据范围。 第五分钟,诗人说,要有韵律,于是便有了时间限制和内存限制原创 2016-03-18 09:32:15 · 1674 阅读 · 0 评论 -
【codevs2293】山海经 线段树
题目描述 Description【Shadow 1】第三题 “南山经之首曰鹊山。其首曰招摇之山,临于西海之上。多桂多金玉。有草焉,其状如韭而青华,其名曰祝馀,食之不饥…… 又东三百里曰堂庭之山。金棪木,多白猿,多水玉,多黄金。 又东三百八十里曰猨翼之山。其中多怪兽,水多怪鱼。多白玉,多蝮虫,多怪蛇,多怪木,不可以上……” 《山海经》是以山为纲,以海为线记载古代的河流、植物、动物以及矿产等情况原创 2016-03-18 09:15:20 · 793 阅读 · 0 评论 -
【bzoj2300】[HAOI2011]防线修建 set维护凸壳
Description近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了。可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于A国的经费有限,所以希望你能帮忙完成如下的一个任务:给出你所有的A国城市坐标A国上层经过讨论,考虑到经济问题,决定取消对i城市的保护,也就是说i城市不需要在防线内了A国上层询问对于剩下原创 2016-03-17 20:28:11 · 760 阅读 · 0 评论 -
【bzoj1878】[SDOI2009]HH的项链 树状数组+离线
DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此, 他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同 的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解 决这个问题。Input第一行:一个整数N,表示原创 2016-03-29 21:43:42 · 679 阅读 · 0 评论 -
【bzoj1901】Zju2112 Dynamic Rankings 树状数组套主席树
Description给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令原创 2016-03-20 17:37:57 · 529 阅读 · 0 评论 -
【bzoj2434】[Noi2011]阿狸的打字机 AC自动机+fail树+dfs序+树状数组
Description阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和’B’、’P’两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有’B’的按键,打字机凹槽中最后一个字母会消失。l 按一下印有’P’的按键,打字机会在纸上打印出凹槽中现有的所有字原创 2016-02-24 21:09:45 · 635 阅读 · 0 评论 -
【弱校胡策】2016.4.14 (bzoj2164)最短路+状压DP+矩阵乘法+高斯消元+树链剖分+线段树+背包DP
cyyz&qhyz&lwyz&gryz弱校胡策 命题人:cyyz ws_fqkT3暴力写挫了 50+10+0滚粗辣!奇妙的约会(appointment.cpp/c/pas)【问题描述】DQS和sxb在网上结识后成为了非常好的朋友,并且都有着惊人 的OI水平。在NOI2333的比赛中,两人均拿到了金牌,并保送进入 HU/PKU。于是两人决定在这喜大普奔的时刻进行面基。 NOI2333参赛选手众多原创 2016-04-14 22:12:08 · 5058 阅读 · 7 评论 -
【bzoj2006】[NOI2010]超级钢琴 堆+st表
Description小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这两个原创 2016-03-28 21:36:48 · 746 阅读 · 0 评论 -
【TsinsenA1339】JZPLCM(顾昱洲) 树状数组
试题来源 2012中国国家集训队命题答辩问题描述 给定一长度为n的正整数序列a,有q次询问,每次询问一段区间内所有数的lcm(即最小公倍数)。由于答案可能很大,输出答案模1000000007。输入格式 第一行,两个整数,n, q,分别表示数列长度和询问个数。 下面n行,每行一个整数,第i行的整数为ai。 下面q行,每行两个整数l, r,表示询问下标i在[l, r]范围内的ai的lc原创 2016-04-26 16:38:06 · 1543 阅读 · 2 评论 -
【bzoj4084】[Sdoi2015]bigyration hash
bzoj没有题面,题面在vijos。所以说读入char再丢给string并不会慢…短串扔到hash表里。 长串的前半部分复制一份,然后在上面跑,若长串的后半部分出现过,则答案加上后面的hash值的出现次数。写了双hash+挂链表,因为写了指针,并且双hash常数大,所以TLE+MLE,还有莫名其妙的WA…………自然溢出+map在vijos上就是过不了……T两个点,不过在bzoj还是能A的。看题解有原创 2016-04-13 17:29:40 · 1099 阅读 · 0 评论 -
【弱校胡策】2016.4.25 (bzoj4108、tsinsenA1339、tsinsenA1490)上下界网络流+树状数组+线段树+矩阵乘法+概率与期望
出题人说T1是大水题,于是我放弃了几乎一眼的上下界网络流,开始想MST 几个小时之后然后出题人告诉我正解是上下界网络流 卧槽说好的大水题呢 T1题意好像不对2333 T3竟然是期望!暴力我都不会 T2一眼看去只会特殊数据,好吧我就写了这些。后来发现暴力可以写一下?算了算了弃疗2333fqk毒瘤出题人!!雪题意一个序列,每个点只能往它后面的点走,有一个费用,要求走K次不重复走完所有点,求最小花费原创 2016-04-25 20:53:31 · 903 阅读 · 0 评论 -
【tsinsen A1490】osu!(乔明达) 矩阵+线段树
试题来源 2013中国国家集训队第二次作业问题描述 osu!是一个基于《押忍!战斗!应援团》《精英节拍特工》《太鼓达人》等各种音乐游戏做成的一款独特的PC版音乐游戏。游戏中,玩家需要根据音乐的节奏,通过鼠标点击或敲击按键合成一首歌曲。 一张osu!的地图是由若干个“音”排列而成的。在本题中,对于每个音我们只需要考虑成功点击和错过(miss)这两种情况。对于一张osu!地图,玩家的完成情况可原创 2016-04-25 20:15:09 · 1602 阅读 · 1 评论 -
【poj1821】Fence 单调队列优化DP
DescriptionA team of k (1 <= K <= 100) workers should paint a fence which contains N (1 <= N <= 16 000) planks numbered from 1 to N from left to right. Each worker i (1 <= i <= K) should sit in front o原创 2016-03-14 10:47:44 · 854 阅读 · 0 评论 -
【bzoj2124】等差子序列 权值线段树维护hash
Description给一个1到N的排列{Ai},询问是否存在1<=p1=3),使得Ap1,Ap2,Ap3,…ApLen是一个等差序列。Input输入的第一行包含一个整数T,表示组数。下接T组数据,每组第一行一个整数N,每组第二行为一个1到N的排列,数字两两之间用空格隔开。Output对于每组数据,如果存在一个等差子序列,则输出一行“Y”,否则输出一行“N”。Sample Input231 3 23原创 2016-04-06 19:29:29 · 1376 阅读 · 0 评论 -
【bzoj3039】玉蟾宫 悬线法(单调栈)
Description有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。 这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。 现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。 但是rainbow和fr原创 2016-03-13 22:07:12 · 2035 阅读 · 0 评论 -
【bzoj3238】[Ahoi2013]差异 后缀数组+单调栈
DescriptionInput一行,一个字符串SOutput一行,一个整数,表示所求值Sample InputcacaoSample Output54HINT2<=N<=500000,S由小写英文字母组成Source重点在如何求∑i<jLCP(i,j)\sum_{i<j}LCP(i,j)。也就是求所有区间最小值之和。定义f[i]f[i]为1~i的答案,可以维护一个单调不下降的栈,然后用栈顶元素原创 2016-02-28 10:14:20 · 614 阅读 · 0 评论 -
【bzoj3295】[Cqoi2011]动态逆序对 树状数组套主席树
Description对于序列A,它的逆序对数定义为满足iInput输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依次为删除每个元素之前,逆序对的个数。Sample Input5 4153425142Sample Output5221样例解释(1,5,3,原创 2016-04-05 21:57:59 · 1220 阅读 · 0 评论 -
Codeforces Round #344 (Div. 2) 乱搞+单调栈+kmp
A题SB题#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int SZ = 1000010;int a[SZ],b[SZ];int main(){ int n; scanf("%d",&n); int ans1 = 0,an原创 2016-03-04 11:13:23 · 959 阅读 · 0 评论 -
【bzoj1014】[JSOI2008]火星人prefix splay+hash+二分
Description火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m i m a d a m 现在,火星人定义了一个函数LCQ(x, y),表示:该字符串中第x个字符开始的字串,与该字符串中第y个字符开始的字串,两个字串的公共原创 2016-02-15 00:28:11 · 787 阅读 · 0 评论 -
【bzoj3223】Tyvj 1729 文艺平衡树 Splay
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 Input第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2……n-1,n) m表示翻转操作次数 接下来m行每行两个数[l,r] 数据保证 1<=l<=r<=n Output输出一原创 2015-12-08 20:10:41 · 1323 阅读 · 2 评论 -
【JSOI2007】建筑抢修 贪心+堆
Description小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多原创 2015-10-13 09:17:45 · 1191 阅读 · 0 评论 -
【codevs1051】接龙游戏 栈
题目描述 Description给出了N个单词,已经按长度排好了序。如果某单词i是某单词j的前缀,i->j算一次接龙(两个相同的单词不能算接龙)。你的任务是:对于输入的单词,找出最长的龙。输入描述 Input Description第一行为N(1<=N<=105)。以下N行每行一个单词(由小写组成),已经按长度排序。(每个单词长度<50)输出描述 Output Description仅一个数,为最长原创 2015-10-10 16:22:24 · 1192 阅读 · 0 评论 -
【codevs1306】广播操的游戏 hash or STL
题目描述 Description 看广播操无聊得很~你有觉得吗?在看广播操一波又一波的人潮涌过再退去。觉得很没意思……于是,偶们的大神犇JHT发明了一个及其好玩的游戏~ 把每一班级的队形看成一个字母(仅可能为大写字母),然后按他们的出场顺序无聊地排成一串,成为了一个著名的字符串!JHT神犇想看看一个年级中,一共有多少种不同的出场组合(LCZ:说白了就是求字符串内的非空子串的数量!)。输入描原创 2015-10-10 20:30:26 · 629 阅读 · 0 评论 -
【bzoj1216】[HNOI2003]操作系统 堆+模拟
Description写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束。除非在这个过程中,有一个比它优先级高的进程要运行。在这种情况下,这个新的(优先级更高的)进程会占用CPU,而老的只有等待。如果一个进程到达原创 2015-10-23 21:44:31 · 891 阅读 · 2 评论 -
【专题】线段树&&树状数组
算是复习吧…先简单的说一下。 两者都是执行对区间操作。 先说树状数组:树状数组相当于前缀和优化,所以不满足区间减法的不可以维护(比如说RMQ),所以说一般拿树状数组来维护区间和。但树状数组一般都是做【区间修改点查询】或者【点修改区间查询】,虽然也可以做到【区间修改区间查询】但不好想……总之树状数组的局限性比较大。 但为什么要学呢? 比线段树常数小啊!并且代码就那短短几行!!咳咳,然后说一下线原创 2015-09-02 22:28:13 · 814 阅读 · 0 评论 -
【bzoj2243】 [SDOI2011]染色 树链剖分+线段树
Description给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。Input第一行包含2个整数n和m,分别表示节点数和操作数; 第二行包含n个正整数表示n个节点的初始颜色原创 2015-10-21 09:55:43 · 789 阅读 · 0 评论 -
【poj2104】K-th Number 归并树
说起来这是第二次A这个题了23333 第一次是分块,戳这里归并树比分块打起来爽,速度还快,简直好评思想:线段树套数组【雾。线段树每个节点保存它所表示的区间的有序数字排列。实现就是在归并排序的过程中保存归并排序的过程。蛮好打的。并且调试什么的也没出什么大问题别忘了手动读入,别忘了读负数,归并排序的tmp数组不要menset(会T)(所以我直接没用tmp数组)代码:#include<cstdio>#原创 2015-10-10 08:57:18 · 738 阅读 · 0 评论 -
【bzoj1012】[JSOI2008]最大数maxnumber st表
Description现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在长整原创 2015-10-23 08:49:00 · 886 阅读 · 7 评论 -
【洛谷1592】【模板】template 线段树 线段树裸题
模板题,不过好像卡常?代码:#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int SIZE=500010;typedef long long LL;struct seg{ int l,r; LL sum,add;}tree[SIZ原创 2015-11-05 09:05:55 · 1120 阅读 · 0 评论 -
【bzoj1036】[ZJOI2008]树的统计Count 树链剖分+线段树
Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身Input输入的第一行为一个原创 2015-10-19 16:15:25 · 772 阅读 · 3 评论 -
【SPOJ】QTREE 1 树链剖分裸题
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3…N-1.We will ask you to perfrom some instructions of the following form:CHANGE i ti : change the cos原创 2015-10-20 08:56:18 · 1030 阅读 · 0 评论 -
【笔记】表达式运算 栈练习
tyvj1042 表达式计算其实这种题,中缀转后缀才蛋疼……先说如何计算后缀表达式:从前往后扫表达式;若遇到数字,则扔进数字栈中。若遇到算符,则弹出栈顶的两个数字进行计算,再扔进去。最后答案是数字栈里剩下的一个数。那么如何中缀转后缀呢?从前往后扫表达式;若遇到数字,则直接添加进后缀表达式中。若遇到算符,则与栈顶比较(若栈为空则扔进栈中):{ 若当前算符比栈顶算符优先级高,则直接扔原创 2015-10-13 19:26:10 · 758 阅读 · 0 评论