• 关于csp-s的各种问题整理


    前言

      脑残选手在线 WA 0,由于各种各样的诡异问题,在此做一个整理,希望不再出现!!!

      CSP-S RP++++++++++

    复杂度

    1. 当求解的内容形如:“ ∑(ai ± bi)或者 ∏(ai ± bi)”,考虑分开求解 ai 和 bi 。
    2. 当需要在三个数组里面取出需要满足一些条件的值的时候,可以先对两个做出部分限制,排序最后一个,二分求解。
    3. 如果看见是结论题,并且样例较巧,可以尝试带入结论看是否合法而不是正推。
    4. 修改一个序列里面的一个数后对数组再次求解,可以直接考虑整体。
    5. 没有想法的时候先去看约定,假如其中有形如 “ 在x%的数据中,保证数据构成一条链 ”这样的有特殊性质的话,就可以从特殊性质推起。【注意:如果出现在100%之后就是特殊构造,没什么参考价值了。
    6. 倍增是个好东西。

    细节

    1. 数据范围中只要有一个涉及到运算的,哪怕是减法,只要规模达到1e8及以上,就要开始开long long
    2. #define itn long long 这种智障错误我也是惊了Σ(っ °Д °;)っ
    3. 关于freopen(“test1.in”,“r”,stdin);这种写错文件名的脑残错误?没脸见人QAQ
    4. 数组名什么的,不要用了Q,再用 q。
    5. 数据的读入时候,注意不要 int 用 %lld,long long用 %d!
    6. 在 j 的循环中 i++,我给自己点个赞!
    7. 数组爆栈之类的一定要注意,基本上1e5的队列又有可能会出现爆栈的情况了。

    算法

    1. SPFA什么的,我死了。
    2. 不要再做n2过百万的梦想了……
    3. 分层图在写的时候一定注意dis的初始化,不能memset,一定要手动循环。
    4. 所有手动初始化的时候都要注意要不要照顾到 i=0,不然就都带上。
    5. 分块写的时候注意块的编号,记得把没分到整块中的最后一点另外开一个块。
    6. 分块的时候,需要调用块的大小的时候一定要用 R[ ] - L[ ],不能使用siz。
    7. tarjan的时候注意割点和割边,点双和边双写法上面的不同。
    8. 支配树一定要写上倍增LCA,不然会发生什么我也不知道。
    9. 基环树DP的时候,两次DP不用重新memset。
    10. 关于圆方树,能不用就不要用吧,毕竟是算得上最不熟悉的了啊。
    11. 差分约束一定要先在纸上面列一下。
    12. 树剖一定慎用,一遍打不对就弃了,等会再看。
    13. 贪心一定要对拍,别的可以不对拍,贪心必须对拍。
    14. lower_bound和upper_bound一定要小心,一个是大于等于,一个是大于
    15. 树上的问题,点数n,边数m,n==m,是基环树!

    小学奥数的三个整数拆分结论啦啦啦啦【小凯的疑惑的心理阴影

      1.求问有多少种方法可以把一个整数拆成两个自然数的和?

                  

       2.将一个数拆分成三个自然数的和 ( n≥3 ) 

                           ans1 = (n+1)*(n+1)*(n-2)/ 27 (n%3==2)

                        ans2 = (n+2)*(n-1)*(n-1)/ 27 (n%3==1)

                        ans3 =  n3/ 27

      3.有多少种方法可以把一个数表示成有顺序的三个数的和?

                           ans = (n-1)*(n-2)/ 2;

    CSP-S 2019 RP+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 相关阅读:
    etcd的原理分析
    (转)Linux sort命令
    随机森林
    python 类的定义和继承
    python random
    Spark源码阅读(1): Stage划分
    Mac 上安装MySQL
    Python 删除 数组
    在循环中将多列数组组合成大数组
    准确率 召回率
  • 原文地址:https://www.cnblogs.com/qxyzili--24/p/11834016.html
Copyright © 2020-2023  润新知