
数据结构
MQLYES
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NYOJ - 中缀式变后缀式(逆波兰式)
中缀式变后缀式 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。 输入第一行输入一个整数n,共有n组测试数据(n 每组测试数据只有一行,是转载 2015-06-04 20:57:52 · 483 阅读 · 0 评论 -
hdu 5877
题意: 有根树 1e5 个节点。 u 为v 的祖先,求树中有多少对 a[u]*a[v]<=k k题目中给出。 a[i]为i节点的点权值。 容易想到在深搜过程中维护一个有序序列,在 到达节点v时 ,看序列中有多少<=k的值。 但这个序列当时想的是可以用vector 维护,后来发现不行,不知道到底行不行,还有一中方法就是用线段树,或者树状数组。先离散 在通过点修改,求和...原创 2016-09-20 13:36:57 · 509 阅读 · 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 · 459 阅读 · 0 评论 -
NYOJ 数单词
思路:这道题做从学AC自动机,到做了这个题,用了几天时间用map 映射 每个字符串的标号在字典数的每个单词结尾处,标记上该单词的标号并把相同的单词放到一个队列里剩下的就是AC 自动机了#include #include #include #include #include #include using namespace std; #include #pragma comment(原创 2015-11-20 12:10:59 · 481 阅读 · 0 评论 -
hdu 5652 bestcoder 77 div2 2
#include using 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 · 401 阅读 · 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 · 537 阅读 · 0 评论 -
nyoj 相同的雪花
将具有相同和的序列归为一类,和太大不行, 但可以mod 上一个素数,20003 即可,用一个三维数组存下序列a[k][i][j]表示mod 上20003后得到的值为K的第i个序列的第j个数字,接着枚举k,找是否存在相同的序列,可以逆时针也可以顺时针 i在130左右会超内存 #include #include #include using namespace std; const i原创 2015-09-04 10:17:28 · 558 阅读 · 0 评论 -
字典树:动物统计加强版 (nyoj)
#include using 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 · 486 阅读 · 0 评论 -
中缀式转化为前缀式,中缀式转化为后缀式
1 中缀式转化为前缀式: 从左向右读取中缀式, 当读取到(";直接压栈; 当读取的(”将"(前的全部取出,存到结果字符串中; 当读取的‘为’操作符时,将其与栈顶元素比较, 当栈顶元素小于或等于当前操作符时,将其压栈, 与中缀式转后缀式不同。//后缀式中,栈顶元素小于操作符时才可将其压栈; string fun(string a,string b)//中缀原创 2015-06-05 20:56:43 · 692 阅读 · 0 评论