zoukankan      html  css  js  c++  java
  • 其他-程序实现中的注意事项

    姊妹文章:一些解题中的小技巧

    • (long~long)
    • 解密对拍后上交时需加密
    • 若存在多组数据,每组数据中读入连串数据,若在读入时判无解,需要将剩下的数据读完
    • (O2)时不要在同一个式子里多次改变一个量
    • 记得写(return)
    • 在幂处取模应对(p-1)取模
    • 找规律

    搜索

    • 用了任何剪枝都不要忘记防止反向操作,否则优化再好也是渣

    FFT

    • 在处理nn时要求(nn>2n)(因为答案两倍长度)
    • 两倍空间

    高斯消元

    • 求方程时,在消完当前格后要将所有行([1,n])的全部消除,不仅限于([i,n])

    • 求行列式时,记录行交换了多少次,记得交换一次就要变号

    凸包

    • (nleq 2)时要特判

    带修莫队

    • (blk=pow(n,3/5))的话时间复杂度是有问题的,整数意义下(3/5=0),块大小为(1),要写成(blk=pow(n,3.0/5))

    主席树

    • 统计权值时记得考虑当前节点选却不全选的情况
    • 空间开爆

    后缀自动机

    • 儿子数组要开到字符集大小,不要受平衡树的影响只开(2)
    • 总数组需要开两倍空间
    • 广义后缀自动机不能使用基数排序,需要建出 (parent) 树(因为广义 (mathrm{SAM})中存在节点与 (parent)(longest) 相同的情况,基数排序无法区分)

    矩阵树

    • 外向树用入度,内向树用出度
    • 余子式需消去根的那一行

    欧拉回路

    • 当前弧优化

    set

    • 在将struct结构体放入set的时候,重载 < 号需要严格区分两个相同物品,否则会导致元素缺失,或使用multiset

    LCT

    • 在每次进行查询 find 操作时,要注意边下放标记边寻找,最后需要splay一下,否则可能被卡
    • 在cut操作时,为了保证删除的边存在,可以加一个判断 ch[y][0] and !ch[x][1],后者可以保证删除为边而非链
    int find(int x){access(x), splay(x), down(x); while(L) x = L, down(x); return x;}
    void cut(int x,int y){split(x,y); if(ch[y][0] and !ch[x][1]) fa[x] = ch[y][0] = 0;}
    
  • 相关阅读:
    20189317 《网络攻防技术》 第四周作业
    20189317 《网络攻防技术》 第三周作业
    20189317 《网络攻防技术》 第二周作业
    2018-2019-2 20189317 《网络攻防技术》 第一周作业
    20189311《网络攻防》第十周作业
    20189311《网络攻防》第九周作业
    20189311《网络攻防》第八周作业
    20189311《网络攻防》第七周作业
    20189311《网络攻防》第六周作业
    20189311《网络攻防》第五周作业
  • 原文地址:https://www.cnblogs.com/penth/p/9746544.html
Copyright © 2011-2022 走看看