
每周总结
Meet.
这个作者很懒,什么都没留下…
展开
-
本周总结(8.17-8.23)(动态规划)
本周主要复习背包问题,线性DP,区间DP,计数类DP,数位统计DP,状态压缩DP,树形DP,记忆化搜索等内容。算法总结其他总结本周拓展题原创 2020-08-23 22:24:05 · 180 阅读 · 0 评论 -
本周总结(8.3-8.16)(最近公共祖先、数学知识)
本周主要复习数论,包括质数,约数,欧拉函数,快速幂,扩展欧几里得算法,中国剩余定理,高斯消元,求组合数,容斥原理,博弈论等内容。以及上周的最近公共祖先算法。算法总结最近公共祖先(倍增法)d数组是深度数组,根节点所在的深度为1。fa[i][j]表示节点i往上跳 2j 次方个节点。T是最多向上跳的次数,T = (int)(log(n) / (log(2)) + 1,n是节点总数void bfs() //利用bfs初始化d数组和fa数组{ queue<int> q; m原创 2020-08-16 23:14:29 · 260 阅读 · 1 评论 -
本周总结(7.27-8.2)(最短路、最小生成树、二分图)
本周主要复习bellman-ford,spfa,Floyd,Prim,Kruskal,染色法判定二分图,匈牙利算法等内容。算法总结spfaint spfa(){ memset(d, 0x3f, sizeof d); d[1] = 0; q.push(1); while (q.size()) { int t = q.front(); q.pop(); for (int i = 0; i原创 2020-08-03 11:35:32 · 220 阅读 · 0 评论 -
本周总结(7.20-7.26)(搜索、拓扑排序、dijkstra)
算法总结其它总结for each循环中使用&符号可加快运行速度。浮点数二分算法中,循环结束条件一般比题目要求的精度高两个数量级。三分算法可用于求二次函数的最值。模板double cal(){ double l = MIN, r = MAX; while (r - l > 1e-6) { double m1 = l + (r - l) / 3, m2 = l + (r - l) / 3 * 2; if (f(m1) >= f(m2)) l = m原创 2020-07-28 15:23:56 · 143 阅读 · 0 评论 -
本周总结(7.13-7.19)(数据结构)
本周主要复习单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表,树状数组与线段树等内容。算法总结其它总结mapmap是一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value)。主要用法:插入: 通过下标mp[i] = i; 通过insert函数mp.insert(make_pair(i, i));读取和查找元素: 通过key值读取mp[key] 通过count(k)、f原创 2020-07-20 01:04:31 · 372 阅读 · 0 评论 -
本周总结(7.6-7.12)(基础算法)
本周总结算法总结快速排序归并排序位运算双指针算法二分模板1模板2高精度加法减法乘法除法其它总结本周复习的知识点有:排序、二分、高精度、前缀和与差分、双指针算法、位运算、离散化、区间合并。算法总结快速排序void qsort(int a[], int l, int r){ if (l >= r) return; int x = a[l + r >> 1]; swap(a[l + r >> 1], a[l]); int i = l, j =原创 2020-07-13 10:33:40 · 279 阅读 · 0 评论