zoukankan      html  css  js  c++  java
  • NOIP 2020 复习计划

    List

    补qbxt的每一场的题。(未完成)

    VP比赛:

    1

    2

    3

    4

    5

    6

    7

    8

    要求: 模板背过,尽量快的码完一遍过。理解原理。

    初始化 初始化 初始化

    特判 特判 特判

    算空间 算空间 算空间

    暴力 暴力 暴力

    对拍 对拍 对拍

    图/树论:

    Dijstra 5:55

    SPFA(+差分约束+负环)

    Kruscal 5:54

    Prim(堆优化) 5:57

    Tarjan
    割点6:06

    缩点

    割边

    LCA 7:20(树剖)

    树链剖分 (就写了个LCA,觉得不太可能考)

    树上差分

    数论:

    //exgcd

    //线性筛 1:51

    //线性求逆元 6:23

    矩阵快速幂(这个真不知道该放哪儿...)

    字符串

    KMP(待背)

    //Trie

    哈希 4:02

    DS

    //单调队列 4:10

    //单调栈 2:12

    //差分数组(一维+二维)

    //前缀和(一维+二维)

    //线段树

    //树状数组

    //ST表

    //分块

    算法

    //二分

    模拟退火(待背)

    //三分

    dp

    概率dp

    状压dp

    数位dp

    树形dp(EX: 树上背包,/换根dp/)

    区间dp

    (都有待复习)

    比较杂的处理方法

    二维偏序

    分段打表

    比较好用的策略:

    小黄鸭调试法

    先码暴力部分分,爆搜先打好保底分。

    注意事项:

    在这儿阅读可能体验好点

    推荐一:Venus

    推荐二:dyls

    (有好的推荐也可以留言我放上来鸭)

    标重的是犯过第二次错误的

    处理方面

    无向图邻接表开两倍,如果有超源超汇的话还要再多开一点,一顶要仔细算好,不要爆空间也不要开少了边。

    sort 重载运算小于号,如果优先级相等的话一定是返回 false ,要不然会两个相同优先级的一直来回交换时间复杂度退化成 (mathcal{O}(n^2))

    sort 左边闭区间,右边开区间(右边要多+1)

    时刻想着 for 循环是在枚举谁(的下标),防止出现使用不统一的情况(可能意思有点糊,大概就类似于分块时枚举的是块还是数)。

    写大模拟一定要保持思路的清晰,先捋一遍所有的优先顺序,彻底理解题意,变量名尽量用读的懂的拼音,不要吝啬,多加注释。

    遇到差相等/差成比例: 差分

    区间类问题只有一次查询: 差分,只有一次修改: 前缀和

    注意某些操作最多的操作次数。避免不必要的常数(可以参考线段树区间开平方)

    遇到图论棘手时可以考虑换种建模方式,或者换种连边方式(把点看成边把边看成点)

    动态规划,对于填表法,如果 (f_i) 最远会从 (f_{i-x}) 转移,要预处理(初始化) ([1,x]) 中的每一个 (f),而且要特判 (nleq x) 时的情况。

    动态规划,注意 (f) 定义、是否是答案的特定条件下(可以理解为 (f_i) 为当前选 (i) ,但是答案选 (n) 和不选都可以,答案不一定是 (f_n)

    动态规划,对于刷表法,数组要多开一定的位数。

    多组测试的时候一定要清空彻底,不一定是只清空 ([1,n]) ,而是把所以可能用到的都清空掉。

    二分下界是 (1) 还是 (0) 或者其他。

    浮点数二分时eps是算进复杂度里面去的((l=0,r=INF) 时二分复杂度为 (mathcal{O}(log(INF imes eps^{-1}))))。

    并查集的按秩合并要特判 (find) 出来俩节点的根节点相等情况,要不然会让 (siz) 是错的从而复杂度变成错的。

    质因数分解不要写成 (mathcal{O}(n)) 的(FST泪两行)。

    整除和下取整不能混用(因为有负数的情况)。

    1.0*出来是 float,如果卡精度换 double

    测极限数据(格雷码泪两行)。

    当出现不等式求满足不等式的取值个数的时候,如果有多个数,尝试枚举取值少的那些数。 例子1,例子2(80分做法)

    尽量不要#definemaxmin来卡常,原因

    读题/理解方面

    "至少"还是"恰好"

    “正整数”还是“非负数”(是否包括0的情况)

    “连续”还是“不连续”

    “相同”还是“不相同”

    是否保证互不相同(是否需要去重)

    "Yes,No" or "YES,NO"

    给出的图是否连通(判断不连通的情况)

    树形 dp 一定要细心对一个大的树找规律(也要注意链,菊花图(或类似的)的情况的时间复杂度)

    树/图注意是否有方向上的限制,

  • 相关阅读:
    codevs 1102 采药 2005年NOIP全国联赛普及组
    codevs 1058 合唱队形 2004年NOIP全国联赛提高组
    动归题目
    友好城市//未测,不知对错
    codevs 1044 拦截导弹 1999年NOIP全国联赛提高组
    codevs 5294 挖地雷
    codevs 1576 最长严格上升子序列
    [BZOJ3289]Mato的文件管理
    [CodeVS1299]切水果
    [TYVJ1473]校门外的树3
  • 原文地址:https://www.cnblogs.com/do-while-true/p/13584516.html
Copyright © 2011-2022 走看看