//目录

随笔分类 -  ACM——数据结构

摘要:POJ 2299:求逆序数 Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 63215 Accepted: 23579 Description In this problem, you have t 阅读全文
posted @ 2017-08-31 09:23 小草的大树梦 阅读(380) 评论(0) 推荐(0) 编辑
摘要:题意:给一个数字,看他最小是第几个菲波那切数列的前缀。 分析: 大数模板就是吊哦。 将菲波那切数列前500个数字放到字典树上。注意插入的时候不能像普通一样,只在尾节点处标记,而是一路标记下去。 #include <bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2017-07-21 20:44 小草的大树梦 阅读(412) 评论(0) 推荐(0) 编辑
摘要:题意:1~n个猫,有合并操作,有询问操作,合并两只猫所在的集合,询问第K大的集合。 分析:合并操作用并查集,用size维护,询问操作用Treap。注意优化,不能刚开始就把所有size = 1放到名次树中,是1的不做处理,而是不够的时候返回一个1; 1 #include <cstdio> 2 #inc 阅读全文
posted @ 2017-07-20 09:52 小草的大树梦 阅读(331) 评论(0) 推荐(0) 编辑
摘要:当时我的第一想法也是用单调栈,但是被我写炸了;我也不知道错在哪里; 看了大神的写法,用数组模拟的; 记录下单调递增栈的下标,以及每个数字作为最小值的最左边的位置。 当有数据要出栈的时候,说明栈里的数据已经不是最小了,右端点就是当前位置-1,那么就可以计算栈顶的元素所作的贡献;出栈完后,当前这个数字, 阅读全文
posted @ 2017-06-03 16:54 小草的大树梦 阅读(361) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 题意: 分析: 计算出每一个数字作为最大值,最小值的范围; 然后结果就是乘法原理,因为,左右端点可以任意组合; 1 #include <bits/stdc+ 阅读全文
posted @ 2017-05-06 22:40 小草的大树梦 阅读(303) 评论(0) 推荐(0) 编辑
摘要:分析: 1、首先是尺取,尺取到每一个区间,区间满足这个条件,最大-最小<=k; 2、对于一个动态区间,怎么维护他的最大值,最小值(的下标);——单调队列; 什么时候删掉头结点呢? 当我找到了当前区间的上限;我需要尺取移动头结点了;此时,单调队列不用怕,只要这个头不影响我的单调队列,我就可以不用管;否 阅读全文
posted @ 2017-05-03 21:02 小草的大树梦 阅读(269) 评论(0) 推荐(1) 编辑
摘要:题目链接:https://vjudge.net/contest/159527#problem/A 题意:(求一个 图 中的连通分量中的 第 k 大) 一张图,n 个点,m 条边, 有一些操作: 删除 ID 为 x 的边,(从 1 到 m); 询问 x 所在的连通分量 里面第 k 大的权值; 把结点 阅读全文
posted @ 2017-04-19 20:57 小草的大树梦 阅读(340) 评论(0) 推荐(1) 编辑
摘要:在主流STL版本中,set,map,都是BST实现的,具体来说是一种称为红黑树的动态平衡BST; 但是在竞赛中并不常用,因为红黑树过于复杂,他的插入 5 种,删除 6 中,代码量极大(如果你要改板子的话); 相比之下有一种Treap的动态平衡BST,却也可以做到插入,删除,查找的期望时间复杂度O(l 阅读全文
posted @ 2017-04-18 21:29 小草的大树梦 阅读(766) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://vjudge.net/contest/158125#problem/A 题意: 系统中,strcmp函数是这样执行的,给定 n 个字符串,求两两比较时,strcmp函数要比较多少次? 如: t h a n \n t h e r e \n t h a t \n t h e \ 阅读全文
posted @ 2017-04-10 22:28 小草的大树梦 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://uva.onlinejudge.org/external/126/12657.pdf 题意: 给你一个从1~n的数,然后给你操作方案 • 1 X Y : move box X to the left to Y (ignore this if X is already the 阅读全文
posted @ 2017-03-27 20:41 小草的大树梦 阅读(267) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://uva.onlinejudge.org/external/119/11997.pdf 题意: k*k的矩阵,从每一行中选一个元素加起来,可以得到 kk个和,求前 k 个最小值。 分析: 先把表头都放到优先队列中,每出一个,就从相应的表后面加一个。 1 #include <b 阅读全文
posted @ 2017-03-24 16:38 小草的大树梦 阅读(233) 评论(0) 推荐(0) 编辑
摘要:二分搜索技术很经典;讨论一下二分搜索的3种形式。 这里都是左闭右开的结构。 查值很好说,查不到返回-1; 查上界: 当中点值>v时,[x,y);中点值==v时,而左边可能还有,区间[x,y),当中点<v时[m+1,y) 查下界: 当中点值>v时,[x,y);中点值==v时,而右边可能还有[m+1,y 阅读全文
posted @ 2017-03-09 15:22 小草的大树梦 阅读(284) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=2823 用RMQ超时了,我想应该是不会的,看discuss说,之前RMQ过了。 维护两个单调队列。 单调递减的队列,每插入一个时: 超过单调队列长度,左移头指针。 第一个或者符合条件,直接加到后面。 否则,一直退; 题目链接:http: 阅读全文
posted @ 2017-02-16 00:35 小草的大树梦 阅读(264) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://vjudge.net/contest/146667#problem/C 题意:动态的求一个区间的最大连续和。 分析: 看上去可以RMQ去做,但是,当分成两个部分,原来的部分的解可能是跨越这两个区间的。原问题的解不能通过RMQ分成的两个部分的解而得到。 线段树: 线段树很早之 阅读全文
posted @ 2017-01-19 19:06 小草的大树梦 阅读(342) 评论(0) 推荐(0) 编辑
摘要:RMQ: 有一个不变的数组,不停的求一个区间的最小值。 使用倍增的思想优化到logN; d(i,j) 表示从 i 开始的,长度为2j的一段元素中的最小值。 那么状态转移方程: d(i,j) = min{ d(i,j-1) , d(i+2j-1,j-1) } 题目链接:https://vjudge.n 阅读全文
posted @ 2017-01-18 18:30 小草的大树梦 阅读(157) 评论(0) 推荐(0) 编辑
摘要:利用了二进制,二分的思想的一个很巧妙的数据结构,一个lowbit(x):二进制表示下的最右边的一个1开始对应的数值。 那么如果一个节点的为x左孩子,父亲节点就是 x + lowbit(x),如果是右孩子,父亲节点是 x-lowbit(x); 图中白条部分就是辅助数组C对应的最底下的和。 1、那么一个 阅读全文
posted @ 2017-01-18 13:02 小草的大树梦 阅读(281) 评论(0) 推荐(0) 编辑
摘要:要考试了,做几个简单题复习一下数据结构。 栈的应用:http://noi.openjudge.cn/ch0303/1696/ (注意题目描叙是有问题的,应该是波兰表达式) 1696:逆波兰表达式 1696:逆波兰表达式 总时间限制: 1000ms 内存限制: 65536kB描述逆波兰表达式是一种把运 阅读全文
posted @ 2017-01-07 13:36 小草的大树梦 阅读(501) 评论(0) 推荐(0) 编辑
摘要:老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite* spBG = CCSprite::create(""); this->addChild(spBG); //添加到当前层 spGB->setPosition(ccp(x, 阅读全文
posted @ 2016-12-25 22:34 小草的大树梦 阅读(752) 评论(1) 推荐(1) 编辑
摘要:(≧∀≦)ゞ http://www.cnblogs.com/TreeDream/p/6031533.html (线性表的顺序实现) http://www.cnblogs.com/TreeDream/p/6031548.html (不带头的单链表) http://www.cnblogs.com/Tre 阅读全文
posted @ 2016-12-22 23:04 小草的大树梦 阅读(661) 评论(1) 推荐(0) 编辑
摘要:(╥╯^╰╥) 1 /* 2 请设计直接插入排序算法函数void insertSort(int a[],int n),对a[1]..a[n]进行升序排序。 3 并测试在不同数据规模下的排序效率。 4 */ 5 #include "Arrayio.h" 6 #define N 10000 /*N为数据 阅读全文
posted @ 2016-12-22 22:56 小草的大树梦 阅读(1213) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示