数据结构
MQLYES
这个作者很懒,什么都没留下…
展开
-
NYOJ - 中缀式变后缀式(逆波兰式)
中缀式变后缀式时间限制:1000 ms | 内存限制:65535 KB难度:3描述人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。输入第一行输入一个整数n,共有n组测试数据(n每组测试数据只有一行,是转载 2015-06-04 20:57:52 · 455 阅读 · 0 评论 -
hdu 5877
题意: 有根树 1e5 个节点。 u 为v 的祖先,求树中有多少对 a[u]*a[v]<=k k题目中给出。 a[i]为i节点的点权值。容易想到在深搜过程中维护一个有序序列,在 到达节点v时 ,看序列中有多少<=k的值。 但这个序列当时想的是可以用vector 维护,后来发现不行,不知道到底行不行,还有一中方法就是用线段树,或者树状数组。先离散 在通过点修改,求和...原创 2016-09-20 13:36:57 · 461 阅读 · 0 评论 -
nyoj 1286 找出第二大
找出第二大时间限制:4000 ms | 内存限制:65535 KB难度:4描述给你n个数,然后询问你m次。每次询问只有两种情况: Q L R : 输出L到R区间内第二大的值(与第一大的值相同的不算第二大)如果没有第二大的值,输出-1 S L R K : L到R区间内,每个值减去K输入第1行输入n,m. 0原创 2016-08-30 13:26:10 · 427 阅读 · 0 评论 -
NYOJ 数单词
思路:这道题做从学AC自动机,到做了这个题,用了几天时间用map 映射 每个字符串的标号在字典数的每个单词结尾处,标记上该单词的标号并把相同的单词放到一个队列里剩下的就是AC 自动机了#include#include#include#include#include#includeusing namespace std;#include#pragma comment(原创 2015-11-20 12:10:59 · 444 阅读 · 0 评论 -
hdu 5652 bestcoder 77 div2 2
#includeusing namespace std;const int maxn = 505;char a[maxn][maxn];char b[maxn][maxn];int vis[maxn][maxn];int dri[4][2] = {{0,1},{0,-1},{-1,0},{1,0} };struct node{ int x,y ;} c[maxn*maxn原创 2016-03-29 09:37:36 · 356 阅读 · 0 评论 -
线段树求解有序(可在过程中删除元素)第K大
用F数组表示区间内有几个数void build(int l,int r,int rt){ f[rt] = (r-l)+1; if(l==r) { return ; } int mid = (l+r)>>1; build(l,mid,rt<<1); build(mid+1,r,rt<<1|1);}void ask(in原创 2015-12-16 18:01:59 · 491 阅读 · 0 评论 -
nyoj 相同的雪花
将具有相同和的序列归为一类,和太大不行, 但可以mod 上一个素数,20003 即可,用一个三维数组存下序列a[k][i][j]表示mod 上20003后得到的值为K的第i个序列的第j个数字,接着枚举k,找是否存在相同的序列,可以逆时针也可以顺时针 i在130左右会超内存 #include#include#includeusing namespace std;const i原创 2015-09-04 10:17:28 · 521 阅读 · 0 评论 -
字典树:动物统计加强版 (nyoj)
#includeusing namespace std;struct node{ struct node *next[26]; int cot;} a[1000000];node *now=a;int insert(node * &root,char *str){ if(!root) root=now++; node *p=roo原创 2015-06-15 13:36:10 · 458 阅读 · 0 评论 -
中缀式转化为前缀式,中缀式转化为后缀式
1 中缀式转化为前缀式: 从左向右读取中缀式, 当读取到(";直接压栈; 当读取的(”将"(前的全部取出,存到结果字符串中; 当读取的‘为’操作符时,将其与栈顶元素比较, 当栈顶元素小于或等于当前操作符时,将其压栈, 与中缀式转后缀式不同。//后缀式中,栈顶元素小于操作符时才可将其压栈; string fun(string a,string b)//中缀原创 2015-06-05 20:56:43 · 655 阅读 · 0 评论 -
链表 C http://blog.csdn.net/pf4919501/article/details/38818335
链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,转载 2017-01-04 20:47:05 · 559 阅读 · 0 评论