zoukankan      html  css  js  c++  java
  • 小技巧

    小结论

    数学相关:

    • (displaystylesum_{k=1}^n frac{1}{k} = ln n)

    • (C_n^m = C^{m-1}_{n-1} +C^m_{n-1})

    • (C^m_n = frac{n}{m} * C^{m-1}_{n-1})

    • (C^0_n + C^1_n + cdots + C^n_n = 2^n)

    • (C_n^k) k为奇数相加等于k为偶数相加

    • n/x下取整的可能值最多有根号n个

    • 1~N内质数个数大概为 (frac {N}{ln N})

    图论trick:

    • 关于三点两两求lca

      • 其中有两个lca相同(求另一个可以三个一起异或起来)
      • 不同的也是深度最大的那个
      • 不同lca的三点在树上的分叉点
      • 换根lca就是分叉点
    • 关于源点和汇点

      • 求一些点到另一些点的最短路可以建超级源点和汇点
      • 一些点向另一些点连边可以新建源点和汇点
    • 分层图可以解决特殊边的问题, 可以通过dp减少空间

    • 最大/小值多想想生成树

    人类智慧:

    • 将点不断分成两个集合, 使每两点至少有一次在不同的集合, 可以根据某一位在二进制上是否为一

    基础算法与奇技淫巧:

    • 二分大于k的值设为一

    • 无法直接dp可以试试先贪心排序

    • 区间操作没准可以变成差分

    • 闲的没事可以试试倒序操作

    • 最大值最小, 最小值最大试试二分

    • 实在想不出来学会面向数据编程, 小数据暴力, 大数据瞎搞

    • 将数据分块, 大范围暴力, 小范围存储

    • 逆序问题可以先进行排序

    • 整体求值可以化为每个部分对答案的贡献, 在加上数据结构或重新化为另一个整体

    方法:

    • 主元, 让你的式子的变量逐渐有某种规律(靠人类智慧

    • 转化, 将一个问题转化为另一个已知问题(可能有多步转化

    • 放弃, 适时的放弃能让你拿到更多的分数

    心态和考场trick:

    • 心态, 我会大家会, 我不会大家也会, 我会不会大家都会, 无所谓(滑稽
    • 浏览一遍题目, 看看自己最少能拿多少分, 掌握最佳的分配时间
    • 尝试hack自己, 用边界条件和细节问题
    • 留出一个小时左右打对拍, 检查是否MLE或没开够
    • 做不出题时感觉题目很奇怪多半是题看错了
    • 别的选手使劲敲键盘, 那就跟着敲几下, 吓唬一下别人(滑稽
    • 想出题赶紧写, 调过样例, 去个厕所, 想不出来, 去个厕所, AK稳了, 去个厕所(滑稽
    • 尽量吃熟悉的食物
    • 检查时再读一遍题, 看看有没有输出"IMPOSSIBLE"啥的
    • 尽管爆零, 走出考场时要大喊"我 AK 了", 不留遗憾, 涨涨人品(滑稽
    • to be continued
  • 相关阅读:
    C++ Websites
    C++ smart pointer
    Use of ‘const’ in Functions Return Values
    Meaning of “const” last in a C++ method declaration?
    为什么不要使用"using namespace XXX"
    android.os.Handler
    Windows下Anaconda的安装和简单使用
    matlab GPU 操作
    matlab 在柱状图上 显示数字
    How to fix apt-get GPG error NO_PUBKEY Ubuntu 14
  • 原文地址:https://www.cnblogs.com/Hs-black/p/11844288.html
Copyright © 2011-2022 走看看