===数据结构===
LOI_Sherlock
日拱一卒,功不唐捐。
展开
-
【codevs 3187】队列练习3
题目描述 Description 比起第一题,本题加了另外一个操作,访问队头元素(编号3,保证访问队头元素时或出队时队不为空),现在给出这N此操作,输出结果。输入描述 Input Description N N次操作(1入队 2出队 3访问队头)输出描述 Output Description K行(K为输入中询问的个数)每次的结果样例输入 Sample Input 6 1 7 3 2原创 2017-07-17 22:02:14 · 314 阅读 · 0 评论 -
堆排序
#include<iostream>#include<cstdio>using namespace std;const int maxn=10001;int dui[maxn];int n,cnt=0;void push(int a){ cnt++; int now=cnt; while(now>1) { int fa=now/2;原创 2017-07-18 11:04:05 · 189 阅读 · 0 评论 -
【codevs 1082】线段树练习三(区间修改+区间和)
题目描述 Description 给你N个数,有两种操作:1:给区间[a,b]的所有数增加X2:询问区间[a,b]的数的和。输入描述 Input Description 第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,每行表示操作的个数,如果第一个数是1,后接3个正整数,表示在区间[a,b]内每个数增加X,如果是2,表示操作2询问区间[a,b]的和是多少。pascal选手请不要使用原创 2017-08-16 13:29:14 · 338 阅读 · 0 评论 -
【codevs 1080】线段树练习(单点修改+区间和)
题目描述 Description 一行N个方格,开始每个格子里都有一个整数。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和;修改的规则是指定某一个格子x,加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。1≤N<100000,,提问和修改的总数m<10000条。输入描述 Input Description 输入文件第一行为一个整数N,接下来原创 2017-08-17 14:09:38 · 229 阅读 · 0 评论 -
【codevs 1081】线段树练习2(单点查询+区间修改)
题目描述 Description 给你N个数,有两种操作1:给区间[a,b]的所有数都增加X2:询问第i个数是什么?输入描述 Input Description 第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,表示操作的个数. 接下来Q行每行若干个整数。如果第一个数是1,后接3个正整数a,b,X,表示在区间[a,b]内每个数增加X,如果是2,后面跟1个整数i, 表示询问第i个位置的原创 2017-08-17 16:35:27 · 329 阅读 · 0 评论 -
【学习记录】trie树(字典树)
部分概念引自百度百科和各位神犇资料,侵删。百度百科:字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 就是这个: Trie的核心思想是空间换时间。利用字符串的公共前原创 2017-10-06 11:26:33 · 348 阅读 · 2 评论 -
【洛谷 2898】 [USACO08JAN]haybale猜测Haybale Guessing
题目描述The cows, who always have an inferiority complex about their intelligence, have a new guessing game to sharpen their brains.A designated ‘Hay Cow’ hides behind the barn and creates N (1 ≤ N ≤ 1,000原创 2017-11-02 16:51:30 · 411 阅读 · 0 评论 -
【codevs 1230】元素查找
题目描述 Description 给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过。输入描述 Input Description 第一行两个整数 n 和m。第二行n个正整数(1<=n<= 100000)第三行m个整数(1<=m<=100000)输出描述 Output Description 一共m行,若出现则输出YES,否则输出NO样例输入 Sample I原创 2017-08-19 15:39:49 · 379 阅读 · 0 评论 -
【codevs 1191】数轴染色
题目描述 Description 在一条数轴上有N个点,分别是1~N。一开始所有的点都被染成黑色。接着 我们进行M次操作,第i次操作将[Li,Ri]这些点染成白色。请输出每个操作执行后 剩余黑色点的个数。输入描述 Input Description 输入一行为N和M。下面M行每行两个数Li、Ri输出描述 Output Description 输出M行,为每次操作后剩余黑色点的个数。样例输入原创 2017-11-02 08:10:14 · 324 阅读 · 0 评论 -
【codevs 1069】关押罪犯
题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c 的冲突事件。每年年末,警察原创 2017-10-21 07:36:03 · 336 阅读 · 0 评论 -
【codevs 3137】栈练习1
题目描述 Description 给定一个栈(初始为空,元素类型为整数,且小于等于100),只有两个操作:入栈和出栈。先给出这些操作,请输出最终栈的栈顶元素。 操作解释:1表示入栈,2表示出栈输入描述 Input Description N(操作个数)N个操作(如果是入栈则后面还会有一个入栈元素)具体见样例(输入保证栈空时不会出栈)输出描述 Output Description 最终栈顶元素原创 2017-07-17 14:53:26 · 405 阅读 · 0 评论 -
【codevs 1073】家族
题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入描述 Input Description 第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=50原创 2017-07-22 12:21:25 · 305 阅读 · 0 评论 -
【codevs 3138】栈练习2
题目描述 Description (此题与栈练习1相比改了2处:1加强了数据 2不保证栈空时不会出栈)给定一个栈(初始为空,元素类型为整数,且小于等于100),只有两个操作:入栈和出栈。先给出这些操作,请输出最终栈的栈顶元素。 操作解释:1表示入栈,2表示出栈输入描述 Input Description N(操作个数)N个操作(如果是入栈则后面还会有一个入栈元素)具体见样例(输入不保证栈空时不原创 2017-07-17 14:58:45 · 320 阅读 · 0 评论 -
【codevs 3139】栈练习3
题目描述 Description 比起第一题,本题加了另外一个操作,访问栈顶元素(编号3,保证访问栈顶元素时或出栈时栈不为空),现在给出这N此操作,输出结果。输入描述 Input Description NN次操作(1入栈 2出栈 3访问栈顶)输出描述 Output Description K行(K为输入中询问的个数)每次的结果样例输入 Sample Input 61 7321 91原创 2017-07-17 15:19:51 · 375 阅读 · 0 评论 -
【codevs 3185】队列练习1
题目描述 Description 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素。 操作解释:1表示入队,2表示出队输入描述 Input Description N(操作个数) N个操作(如果是入队则后面还会有一个入队元素) 具体见样例(输入保证队空时不会出队)输出描述 Output Description 最终队头元素,若最终队空,输出”imposs原创 2017-07-17 15:40:40 · 447 阅读 · 0 评论 -
【codevs 3186】队列练习2
题目描述 Description (此题与队列练习1相比改了2处:1加强了数据 2不保证队空时不会出队) 给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请 输出最终的队头元素。 操作解释:1表示入队,2表示出队输入描述 Input Description N(操作个数) N个操作(如果是入队则后面还会有一个入队元素) 具体见样例(输入保证队空时不会出队)输出描述 Out原创 2017-07-17 21:43:16 · 421 阅读 · 0 评论 -
【复习记录】并查集
概念并查集是一种树形的数据结构,处理集合的合并和查询。最基础的并查集问题就是关于亲戚关系的问题。实现及优化并查集的实现包括预处理、查询根节点、合并以及判断。 其中预处理是把所有点的父亲都指向自己,每个点的深度初始化为0. 查询根节点时用一行标准的路径压缩即可,将一棵树变成了菊花图。 另一个优化是按秩合并,将深度较小的树的父亲指向深度较深的树。但是有些情况下按秩合并并不适用,比如区间染色问题,只原创 2017-11-04 10:52:28 · 365 阅读 · 0 评论