zoukankan      html  css  js  c++  java
  • GDOI 2020 赛前反思

    • 照例是要开这篇博客的。

    今年稳一点混进省队是(应该)没有问题的吧,A队的话因为联赛挂了60分有点难度,就随缘吧,只要进了省队就好了。

    留个坑,做完最后四场模拟再来填注意事项。


    杂想:

    从初一玩到高一的4h4T 的GDOI终于成了历史,现在是全新的4.5h3T的统一省选,去年也去SH参加了十二省联考,但今年是CCF组织的或许又有些不同,不管题目如何,做好自己就行了。

    不知不觉间就成为了高二老年选手,离AFO也就这么一两月的时间,站到这里才觉得压力有点大,高一时侥幸拿了Ag,现在的政策下还有学上(不过谁也不知道明年会怎么样,jyb不在乎竞赛这么点人的利益的),对于那些没有拿过Ag、Au的OIer来说,压力也许更大吧。

    注意事项:

    • 文件夹、读入输出文件名

    • 空间限制,有没有CE(函数名冲突),看清编译指令

    • 仔细读题,发现暴力都拿不了分时,一定要看看是否是看错了;读完后最好算一算小样例。

    • 拍拍拍,而且不能完全信赖对拍,可以出小数据、特殊数据,暴力最好写多个(要写个最裸的)。

    • 卡思路上厕所,清醒一下

    • 30分钟注意,20分钟决策,10分钟必须停手。

    • 敬畏题目,不去想自己能切几题,尽力即可,不会就看部分分。


    算法复习目录:

    字符串:

    KMP、SAM:

    http://codeforces.com/contest/914/problem/F

    这一题复习了三个算法,血赚。

    就是类似NOI那题的分块,设阈值(M=sqrt 1e5)(>M)的串暴力KMP,小于的最多经过两个块,整块内的建SAM直接查,散块和块与块之间暴力KMP。

    当然更加简单的做法是bitset,即对每个字符存当前位置的bitset,把可能的起点and起来,求区间1的个数即可。

    • KMP :next从2开始,可能要把s[|s|+1]=-1(母串)之类的。

    • SAM : 写完后可以输出子串看看,但是dep赋错了可能看不出来,多测清空一定注意写个函数,全部清了最好。

    • bitset:求区间$[x,y]$1的个数可以(>>x)-(>>y),清空是reset()(可以开个空的赋过去也行),1的个数是count()。

    最小表示法:

    • 扫一扫,注意不匹配时(k=0)

    https://www.luogu.com.cn/record/34419524

    SA:

    https://www.luogu.com.cn/problem/P4094
    一题复习两个算法一个套路,血赚。
    肯定选后缀,试一试就会发现b的限制很难受,二分Ans之后,就相当于后缀在一个区间里,。
    然后常规的height、ST表、主席树即可。

    • SA : s[0]和s[1]赋成-1,cmp有越界风险,所以把暂存rank的数组的后一位赋成0。

    AC-Autonmation:

    https://loj.ac/submission/837516

    这题就是套了个矩阵乘法,因为一次可能+1或者+2,所以需要把存2n的dp状态,相应的转移矩阵就是2n2n的。

    • AC自动机 : 标记沿fail链传递。

    manacher:

    https://www.luogu.com.cn/problem/P4199

    这题是FFT后强行套了个manacher。

    • manacher 写上i-r[i]>0&&i+r[i]<=2*n+1会比较好。

    回文树:

    https://www.luogu.com.cn/problem/P5685

    用回文树做这题是真的败家;

    • 回文树:fa[q] = son[getfa(fa[p])][c];son[p][c] = q;不能写反。
    • 回文树: 除了0和1,其实儿子编号一定比父亲打(不同于SAM)

    exkmp:

    https://www.luogu.com.cn/problem/P5334

    神题。

    从做左往右枚举前缀,保留可能的后缀(即在lcp=小的一方的长度的最小的那些)。

    发现可能的还是有(O(n))的,但如果有(|j|<|i|<2*|j|),发现不管后续是什么,后缀(j)一定不会更优。

    于是优化到(O(log))个。

    每次判断谁更优可以预处理exkmp的next数组。

    • exkmp:自我匹配2的预处理,从3开始推,匹配其它是1的预处理,从2开始推。

    数论:

    excrt
    exlucas

    https://www.cnblogs.com/coldchair/p/13068338.html

    • excrt:该模的地方都要模,c2-c1可能是负数,要取回正,下面这个可能没问题,如果longlong级别要用黑科技乘。
    void merge() {
    	ll t = gcd(m1, m2);
    	m2 /= t;
    	if((c2 - c1) % t != 0) return;
    	ll a = inv(m1 / t % m2, m2) * ((c2 - c1) / t % m2 + m2) % m2;
    	c1 = a * m1 + c1;
    	m1 = m1 * m2;
    }
    
    • exlucas,可以卡常,就是那个地方是1或者-1,就不用快速幂了。

    cipolla
    扩展BSGS

    • cipolla:记式子即可。
    • 扩展BSGS:一开始要除gcd,记得中途退出的情况。之后记得要找最小的正整数解。
    • 多次剩余(模数质数):求出原根,再bsgs求指数,求个逆元即可。

    斯特林数

    • 第一类斯特林数可以考虑直接展开递推式分治NTT求,也可以用ln、exp求圆排列的EGF的几次方。

    • 第二类斯特林数:
      容斥式:(s[n][m]=frac{1}{m!}sum_{i=1}inom{m}{i}*(-1)^{m-i}*i^n)
      自然数幂拆下降幂:(n^m=sum_{i=1}^m inom{n}{i}*i!*s[m][i]=sum_{i=1}^m n^{i↓}*s[m][i])
      自然数幂拆上升幂:(n^m=sum_{i=1}^m n^{i↑}*s[m][i]*(-1)^{m-i})

    单位根反演
    ([k|j]=frac{1}{k}sum_{i=0}^{k-1} w_k^{ij})

    pollard-rho

    • pollard-rho:注意判质数那里不要随机出0为根,后面没有关系。

    斯特林反演
    矩阵树
    min_25
    类欧
    五边形数(记不得就打表找规律)

    数据结构:

    treap
    https://www.luogu.com.cn/record/34501298
    记一下自随机函数的参数。

    KD-tree

    其它:

    2-sat
    上下界网络(费用)流
    注意有源汇中,T->S中的流量才是实际流量,而费用的统计可以通过每条边费用流过流量+费用下界流量来算。

  • 相关阅读:
    TCP源码—连接建立
    TCP系列02—连接管理—1、三次握手与四次挥手
    TCP系列01—概述及协议头格式
    ubuntu软件管理apt与dpkg
    318. Maximum Product of Word Lengths
    317. Shortest Distance from All Buildings
    316. Remove Duplicate Letters
    315. Count of Smaller Numbers After Self
    314. Binary Tree Vertical Order Traversal
    313. Super Ugly Number
  • 原文地址:https://www.cnblogs.com/coldchair/p/13131793.html
Copyright © 2011-2022 走看看