联赛总结
算法储备
基础
模拟:e.g
贪心:e.g
二分:e.g
三分:e.g
倍增:e.g
数据结构
链表:e.g
堆:e.g
树状数组:e.g
ST表:e.g
数学
catalan数:e.g
矩乘:e.g
费马小定理:e.g
高斯消元:e.g
杂:e.g
搜索
剪枝:e.g
图论
Tarjan:(强连通分量)e.g,(割点)e.g,(桥)e.g,(边双)e.g,(点双)e.g
欧拉回路:e.g
二分图匹配:e.g,e.g,e.g,e.g ——(最小点覆盖:选择最少的点使所有的边都至少存在一个被选中的端点;最小路径覆盖:选最少的边使得所有的点都是某条边的端点)
拓扑排序:e.g
树
树的重心:e.g
树的直径:e.g
树上倍增:e.g
树链剖分:e.g
字符串
KMP:e.g
trie树:e.g
hash:e.g
动态规划
字符串dp:e.g
序列dp:e.g
背包dp:e.g
状压dp:e.g
递推:e.g
注意事项
Dijkstra不能处理负边权以及最长路
Tarjan求割点和求桥的区别:
割点——dfn[x]<=low[e[i].to](另外判断搜索树根是否为割点——son[x]>1)
桥——dfn[x]<low[e[i].to]
差分约束从减数连向被减数
矩乘注意顺序
hash是注意进制
该离散化的离散化,线段树开4倍空间
容斥统计X能被多少数整除时,每次dfs枚举后取lcm
模数写错就尴尬了
题目想清楚了再写,尤其是倍增这种细节容易搞不清的。
千万别看错题。
邻接表等数组大小
图论题读入边的时候m别写成n了
对拍造数据时要造好,以防全是0,Yes,No的辣鸡数据
系统堆重载运算符中的小于号和大于号以及堆中记得开LL
空间别开爆了,数组别开小了。
最后,别犯智障错误!!别犯智障错误!!别犯智障错误!!重要的事情说3遍。
emacs考试配置
(defun compile-file() (interactive) (compile (format "g++ -o %s %s -g -lm -Wall"(file-name-sans-extension(buffer-name))(buffer-name))) ) (global-set-key [f9] 'compile-file);;编译 (global-set-key [f7] 'gud-gdb);;gdb (global-linum-mode t);;行号 (global-set-key (kbd "RET") 'newline-and-indent);;自动换行 (global-hl-line-mode t);;当前行高亮 (show-paren-mode t);;括号匹配 (setq-default cursor-type 'bar);;光标修改为细光标 (setq default-tab-width 4);;tab (setq c-basic-offset 4) ;;考场必备 (setq scroll-step 1 scroll-margin 3 scroll-conservatively 10000);;滑动窗口 (fset 'yes-or-no-p 'y-or-n-p);;Yes or no-->Y or N (set-frame-parameter (selected-frame) 'alpha (list 85 75)) (add-to-list 'default-frame-alist (cons 'alpha (list 85 75)));;修改透明度 (custom-set-variables '(ansi-color-faces-vector [default default default italic underline success warning error]) '(ansi-color-names-vector ["black" "red3" "forestgreen" "yellow3" "blue" "magenta3" "deepskyblue" "gray50"]) '(custom-enabled-themes (quote (deeper-blue))) );;主题 ;;自行修改字体,菜单隐藏,快捷键
模板
.cpp
#include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #define LL long long #define inf 2147483640 #define Pi acos(-1.0) #define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout); using namespace std; int main() { free(""); fclose(stdin);fclose(stdout); return 0; }
pai
#include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #define LL long long #define inf 2147483640 #define Pi acos(-1.0) #define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout); using namespace std; int main() { int t=0; while (++t) { printf("%d: ",t); system("./data"); system("./1"); system("./aaa"); if (system("diff 1.out aaa.out")) {puts("WA");break;} else puts("AC"); } fclose(stdin);fclose(stdout); return 0; }
data
#include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #define LL long long #define inf 2147483640 #define Pi acos(-1.0) #define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout); using namespace std; int main() { freopen("","w",stdout); srand(time(NULL)); fclose(stdin);fclose(stdout); return 0; }
一波人品
#include<win.h> using namespace zyt; int main() { while (1) rp++; return 0; }
UPD
DAY1考试迟到,心态爆炸,崩了。总结几点:
1.不要总想着还有多久的时间
3.开场一定要先看一遍题,看看部分分,安排好做题顺序
3.不要总是担心自己要挂了,10分钟没有正解思路果断暴力