• 易错总结


    易错总结
    (upd:排版/内容混乱,敬请谅解)

    所有题至少想30分钟再去下一题,想不出来就敲个暴力(别一直想正解)

    每道题分配时间均匀——或者简单题能保证稳拿分的多一点时间检查对拍

    最后时间

    不要再轻易改代码(至少不要大改)查数组大小开得对不对,会不会MLE或RE; 查样例能不能过,会不会CE; 查相近变量是否写错(如l和L,i和j,ADD和Add); 简单再次读题,查是否有细节没有注意; 查文件名 以及freopen

    写完代码自己先静态看一下

    读题仔细,落实每一个变量的数据范围 ,看清先后(毒瘤出题人边权先读入),代码不要打错(比如n,m打反,抄错)

    重视细节和特殊值,比如临界和一些不符合自己推出的普遍规律的,特判

    多测不清空,爆零两行泪

    看清有向图还是无向图

    数组开大(tarjan一般开大5-10倍,线段树开4倍,连边的开2倍)

    记得调用函数!!!(日常写了树剖不调用)

    开 long long int和int乘起来如果爆long long 要强制转换

    (long~long)左移要用(1ll)

    不要傻哈哈全(memset),用多少清空多少,可以用个栈啥的

    头文件要写全(不写vector本地过编译)

    注意 0 一直乘的情况——死循环

    不要所有函数都加Inline ,会MLE

    少写while( n-- )....很大几率不过脑子就错了——写for准没事

    树状数组那里最好写上(i)

    搜索注意边界(例如矩形啥的别超过边界)

    组合数记住一定是 $ frac{n!}{m!(n-m)!} $ 千万别忘记 (n-m)!

    凡是要取模的题,每步取模.每有一步减法,必须加上模数防止炸负数 (a*b\%P) 应该是((a\%P*b\%P)\%P)

    先排序再去重!!!

    (i,j)不要打反

    (dfs) :树的fa才有用 ; 连通块的话 用(vis)判是否访问过

    结构体所有的变量就算不用也要赋初值为0,否则会随机赋值

    三种遍历

    前序遍历/先序遍历
    void dfs(int x){
    printf("%d ",x);
    if(ls[x]) dfs(ls[x]);
    if(rs[x]) dfs(rs[x]);
    }

    中序遍历
    void dfs(int x){
    if(ls[x]) dfs(ls[x]);
    printf("%d ",x);
    if(rs[x]) dfs(rs[x]);
    }

    后序遍历
    void dfs(int x){
    if(ls[x]) dfs(ls[x]);
    if(rs[x]) dfs(rs[x]);
    printf("%d ",x);
    }

    子串要求连续,子序列不要求连续

    (double)后面要先写int类型的才能转换!!!

    预处理 (lg)数组

    lg[0]=-1;
    for(int i=1;i<=n;i++) lg[i]=lg[i>>1]+1;
    or
    for(int i=2;i<=n;i++) lg[i]=lg[i>>1]+1;
    

    树上k级祖先

    注意这里必须用int ,不能是unsigned int,因为这里 只有当i=-1才会跳出循环

    for(int i=19;i>=0;i--)
    	if((1<<i)<=d) {
    		x=fa[x][i];
    		d-=(1<<i);
    	}
    return x;
    

    用堆和栈判是否为空

    image-20200912163847614

    欧拉序求lca:

    数组开两倍,循环用cnt而不是n

    -1的二进制是全是1

    里 有 tolower() 函数,将字符转化成小写

    并查集:

    注意先给 fa 赋初值

    注意信息能不能路径压缩,不能的话选择按秩合并

    !!!网络流

    tot=1;

    初始化for(int i=1;i<=N;i++)

    注意是 NNNN

    技巧

    对于某些中间结果非常大但不会在答案中出现的题,可以用long double计算中间答案最后用long long输出

  • 相关阅读:
    Linux:CentOS-7配置VMware-15.5与本机IP同网段
    SpringCloud:Zuul路由配置超时问题
    SpringCloud:路由ZUUL的配置详解
    SpringCloud:扩展zuul配置路由访问
    给source insight添加.cc的C++文件后缀识别(转载)
    Linux下共享库嵌套依赖问题 (转载)
    Ubuntu 下编译libjingle-0.6.14 (转载)
    什么是「穷人思维」?
    谁上北大是能力说了算,不该是教育部(转载)
    Installing cmake 2.8.8 or higher on Ubuntu 12.04 (Precise Pangolin) (转载)
  • 原文地址:https://www.cnblogs.com/ke-xin/p/14102425.html
Copyright © 2020-2023  润新知