2019暑期ACM集训总结之ZWT


今天训练赛的结束也宣告了长达一个月的集训进入尾声。这个暑假真是很特别的暑假,每天早上出门晚上9点回宿舍的日子很充实(当然一WA哇一天也很难受)。在一个个算法中解锁了热爱,解锁了技能,也解锁了一起训练的你们和一起比赛的大佬。我看到了热爱的力量。

集训刚开始每个人都是充满干劲的,幻想着一个月之后自己也是一个“大佬”了,可是很快满腔热血就被如约而至的第一场多校联赛打的渣都不剩……自己和那些清华北大985 211的差距大的让人喘不过气,只能以“自己才大一”来安慰自己。不过随着训练的进行,在感觉到自己的进步之后也越来越有动力。学长给我们拉了很多专题,这大大加快了我们的速度,感谢老师和学长们的无私付出!但是一个很神奇的现象是学的越多越感觉自己很菜……


集训前学过的算法:
模拟(不算算法吧),二分,深搜dfs,广搜bfs,STL容器,简单dp,线段树,最短路(Floyd,迪杰斯特拉,B-F,SPFA),最小生成树(克鲁斯卡尔),二分图匹配


专题从动态规划开始:01背包,LIS,LCS,区间dp,树形dp;

然后是图论专题:tarjan,网络流,最大流(没想到二分图和最大流的关系如此密切),最小费用流,有上限下限的可行流(虽然我还没学完),树状数组,前缀和数组,以及还没刷完的计算几何;

字符串专题有kmp(强大的NEXT数组),扩展kmp(强大的EXTEND数组),字符串哈希;

另外有加了概率专题,博弈论专题:威佐夫博弈(尽头竟然是黄金分割率!),尼姆博弈,斐波那契博弈(斐波那契都能扯到博弈论?),Green Hackenbush博弈(树上博弈……),还有组合游戏的万能钥匙——SG函数!

数论的话有逆元的各种求法(原来加减乘除模之外还有逆元这么神奇的东西),快速幂,快速斐波那契数列(要用到矩阵相乘),大数阶乘取模;

学完这些稍微难一点的算法才明白原来自己以前学过的(包括现在在学的)不过是皮毛,在比赛里就像加减乘除一样的东西。也越来越感叹算法的精妙与数学的神奇!也深刻的感受到了欧拉,费马等一众数学家的伟大。感觉任何学科走到尽头都是数学,ACM也是如此。

现在也接触到一些比较难的算法了,目前准备学的有字典树,manacher,AC自动机,和一些组合数学的东西(比如今天考到的卡特兰数,Lucas)等。


今年18级的水平还很有限,来年我们一起拿牌!


再次感谢cds学长给的学习路线:

入门算法:

①STL容器(https://blog.csdn.net/jaihk662/article/category/6356347/1,往下翻,queue,stack,string,vector,map等)这个可能因为太重要了当时我忘说了,理论上这个是一切算法的前提

②线段树

③kmp(字符串处理基础问题,这个要多刷找感觉)

④基础动态规划

⑤贪心,模拟,C语言基础题(codeforces div2 AB题)

⑥最小生成树、最短路、并查集理论上只要会上面的,熟练一点稳一点就铜了(cds学长说的熟练一点可能是指:每个算法最少训练100道???,稳一点可能是指:遇到相应算法的题一定要AC???)


基础算法:

①较难的DP(区间DP,滚动数组优化,斜率DP,简单的状压)

②各种位运算(异或,或,且,左移右移以及他们的性质,特别是异或!)

③二分匹配

④基础数论(质数筛、一些简单的概率计算,高中之前的数学定理)

⑤计算几何(向量叉积,计算多边形面积等,判断两直线相交、圆)

⑥树(DFS序、LCA等)

⑦强联通分量(这个很重要,有向图基础)

⑧字典树、manacher掌握这些之后,基本上就稳了,接下来就是刷题,找到感觉,积累经验,说不准运气好就是银牌了(cds学长说的运气好可能是指:比赛中的题,都是你做过的题的变形???)


进阶:

①网络流(最大流、最小费用最大流)

②线性代数(只需要掌握矩阵求秩、矩阵乘法,难点主要在如果将问题转化成矩阵乘法!)

③中等数论(欧拉降幂、欧拉函数、费马小定理、Lucas、中国剩余定理)

④组合数学(小球与盒子系列https://blog.csdn.net/Jaihk662/article/details/79572685、各种这类型的计数问题)

⑤后缀数组、AC自动机、fail树

⑥树的各种问题(树链剖分、树分治等)

⑦分治、分块、莫队(CDQ分治、一些神一般的套路)

⑧可持久化线段树应该是有漏的,比如BFS、DFS,这个你们在学习过程中肯定都能知道的进阶算法可以慢慢学(半个月一个啥的)不急,主要是基础,不知道这些全部都熟练能有多强,你都搞定CF应该已经紫名了吧(CF:codeforces)



难:

①有限制的网络流(最小费用可行流、带上下界的网络流、zkw、分层)

②高等数论(FFT、NTT、母函数、莫比乌斯反演、Min_25筛、Polay定理等)

③舞蹈链

④高难度集合(半平面交、多维向量空间)

⑤随机(模拟退火等)

⑥可持久化平衡树

⑦快速沃尔什FWT、各种论文题

⑧散了吧。。。。

可以偷偷学一个,用来创造奇迹。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值