随笔分类 -  luogu

摘要:首先这题不能用trie做,因为极限情况下,每一个字符串的长度最大1500,共10000个字符串,并且都不相同,那么大约需要的空间: $1 + 62 + 62 * 62 + ... + 62^{1499} = \frac{1 - 62^{1500}}{1 - 62}\approx 62^{1499} 阅读全文
posted @ 2020-10-26 10:48 yys_c 阅读(127) 评论(0) 推荐(0)
摘要:这题要推几个公式,比较麻烦 m层的二叉树需要的最大宽度和高度: \(w = 2^{m - 1} * 3 - 1, m = 2, 3, ...; w = 1, m = 1\) \(h = 2^{m - 2} * 3, m = 2, 3, ...; w = 1, m = 1\) #include<ios 阅读全文
posted @ 2020-10-25 19:08 yys_c 阅读(182) 评论(0) 推荐(0)
摘要:题意:给你一个二叉树,输出它的深度,宽度,以及对于结点u和v输出它们的距离 u和v的距离定义:设u和v的最近公共祖先为c,dist(u, v) = dist(u, c) * 2 + dist(v, c); #include<iostream> #include<algorithm> #include 阅读全文
posted @ 2020-10-25 13:12 yys_c 阅读(95) 评论(0) 推荐(0)
摘要:乘法原理应用题 结论: 对于以S为根的二叉树,如果S既有左孩子又有右孩子,那么对于S而言的中序遍历的种类数 = 左孩子的种类数 * 右孩子的种类数 对于以S为根的二叉树,如果S只有左孩子或者右孩子,那么对于S而言的中序遍历的种类数 = 左孩子的种类数 * 右孩子的种类数 * 2 一棵二叉树中的只有一 阅读全文
posted @ 2020-10-25 11:18 yys_c 阅读(130) 评论(0) 推荐(0)
摘要:只要坑不死,就往死里坑呗。。。 二叉搜索树的模板题,本题无删除操作 核心函数: query_by_value(int root, int val): 根据值来查找排名 query_by_rank(int root, int rk): 根据排名找值 insert(int root, int val): 阅读全文
posted @ 2020-10-22 19:38 yys_c 阅读(219) 评论(0) 推荐(0)
摘要:重建二叉树题 存树 // ABEDFCHG // CBADEFGH #include<iostream> using namespace std; const int N = 30; struct Node{ char val; int l, r; }tr[N]; int st[N]; int cn 阅读全文
posted @ 2020-10-22 14:27 yys_c 阅读(132) 评论(0) 推荐(0)
摘要:注意点: 为了保证复杂度,所以放弃去重,所以不可以用二分离散化 由于1的原因,所以find需要从后逐个往前找,因为同一个柜子可能多次放入,后面的是最新的记录 #include<iostream> #include<vector> using namespace std; #define PII pa 阅读全文
posted @ 2020-10-21 20:22 yys_c 阅读(186) 评论(0) 推荐(0)
摘要:#include<iostream> #include<stack> using namespace std; string s; stack<int> stk; int main(){ cin >> s; for(int i = 0; s[i] != '@'; i ++){ if(isdigit( 阅读全文
posted @ 2020-10-21 19:27 yys_c 阅读(158) 评论(0) 推荐(0)
摘要:用队列维护单词进入内存的时间顺序,并根据题目所给的内存限制动态调整内存区域存储的单词,并对内存中包括的单词做标记 注意:题面说如果内存中已经存在这个单词就不要到外存去找了,相应的不需要把这个单词放到内存里。 复杂度:\(O(n)\) #include<iostream> using namespac 阅读全文
posted @ 2020-10-21 19:14 yys_c 阅读(78) 评论(0) 推荐(0)
摘要:用队列维护的一个二十四小时的滑动窗口 #include<iostream> #include<cstring> using namespace std; const int N = 100010; struct Node{ int t, c; // 时间,国家 }; int n; int cnt[N 阅读全文
posted @ 2020-10-21 11:12 yys_c 阅读(60) 评论(0) 推荐(0)
摘要:s.lower_bound(x):二分出序列中最小的>=x的迭代器 s.upper_bound(x):二分出序列中最小的>x的迭代器 #include<iostream> #include<set> #include<cmath> using namespace std; const int N = 阅读全文
posted @ 2020-10-21 10:20 yys_c 阅读(93) 评论(0) 推荐(0)
摘要:栈 + 模拟 #include<iostream> #include<stack> #include<vector> #include<cstdio> using namespace std; stack<int> stk; int q; int main(){ cin >> q; while(q 阅读全文
posted @ 2020-10-20 20:15 yys_c 阅读(167) 评论(0) 推荐(0)
摘要:方法:循环链表 #include<iostream> using namespace std; const int N = 110; int h, e[N], ne[N], idx; int n, m; void init(){ h = -1; for(int i = n; i >= 1; i -- 阅读全文
posted @ 2020-10-20 19:35 yys_c 阅读(72) 评论(0) 推荐(0)
摘要:方法:双链表 #include<iostream> using namespace std; const int N = 100010; int e[N], l[N], r[N], idx; int value_node[N]; int n; void add(int x, int v){ valu 阅读全文
posted @ 2020-10-20 18:55 yys_c 阅读(101) 评论(0) 推荐(0)
摘要:#include<iostream> #include<stack> using namespace std; const int N = 110; stack<int> pos; char s[N]; int st[N]; int main(){ cin >> s + 1; for(int i = 阅读全文
posted @ 2020-10-19 22:05 yys_c 阅读(97) 评论(0) 推荐(0)
摘要:另外本题还要注意一下他要输出路径,所以开一个数组记录一下后继结点 #include<iostream> #include<cstdio> using namespace std; const int N = 30, INF = 0x3f3f3f3f; int f[N]; int w[N]; int 阅读全文
posted @ 2020-10-16 12:46 yys_c 阅读(113) 评论(0) 推荐(0)
摘要:bfs,把能换的全部换掉然后入队即可。 #include<iostream> #include<map> #include<unordered_map> #include<queue> #include<vector> using namespace std; #define PSI pair<st 阅读全文
posted @ 2020-10-15 21:06 yys_c 阅读(84) 评论(0) 推荐(0)
摘要:怀疑人生的题。。。。。bfs理解不够,我怀疑我会不会写bfs 问题: 是否能使用level数组来标记步数?在将level数组改成结构体绑定步数之后AC bfs出口语句if(g[x][y] == '=') return 步数 这句话放在哪到底有没有影响,我在将这句话从上面改到下面后AC 传送门转移为什 阅读全文
posted @ 2020-10-15 20:51 yys_c 阅读(166) 评论(0) 推荐(0)
摘要:这题在做之前要先证明一个结论:如果一个0没有被包围在圈内,那么存在一个边缘的0和它连通。 证明的前提:有且只有一个的圈,并且这个圈是合法的 显然有:某一个0和任意一个边缘的0不连通(也就是说从这个0出发的任何路径都到不了边缘的任意一个0) → 它一定被包围在圈内,从而由逆否命题获证原命题正确 #in 阅读全文
posted @ 2020-10-15 11:10 yys_c 阅读(100) 评论(0) 推荐(0)
摘要:没看清题,说是走了一个方向不换方向,导致一开始写bfs狂WA(因为出现了一个后继对多个前驱的情况) #include<iostream> #include<cstring> #include<queue> using namespace std; #define PII pair<int, int> 阅读全文
posted @ 2020-10-14 19:33 yys_c 阅读(87) 评论(0) 推荐(0)