zoukankan      html  css  js  c++  java
  • Noip前的大抱佛脚----一些思路

    一些思路

    Tags:Noip前的大抱佛脚

    序列

    • 线段树(当然还要有主席树啊!)
    • 差分和前缀和啊
    • 分块
    • 莫队
    • 看到等差数列先推一波式子啊(天天爱跑步)
    • 有序序列的动态插入删除
      有的时候需要算贡献,当你发现序列(离散化后)值域一定时,便可以尝试使用树状数组
    • 维护(mex)
      可以尝试使用值域分块,当这个块内全部有值了就打个(tag)
    • 等和序列
      大概就是说可以多项式乘起来那种吧,可以发现差分之后是回文串!
    • 序列差分
      异或序列可以差分!!(具体差分方法:遇到一个1,给当前位置和下一个位置异或上一个1,这样统计前缀和后就是原序列了)

    函数问题

    • 打表观察进制规律(如(Kathy)的函数)

    网格图

    封闭图形问题

    • 横向维护网格前缀和,把网格交点看作点,每条边作为边,对于水平方向的边边权为0,对于水平方向的可以连两条边,一个表示这行要开始了,减去前缀和,一个表示这行结束了,加上前缀和。这样跑出的一个环正好代价为圈住的网格权值和

    如圈地游戏的判正环的做法

    黑白染色

    如果黑白格互不影响或者有一些奇妙的性质,那么可以往这方面考虑

    删除和询问

    如果可以离线,可以尝试正序删转倒序加,有时问题就变得可做

    乘法问题

    如果加法更可做,考虑

    • 取log
    • 求原根

    顺序问题

    顺序对答案有影响,求答案的最值

    通常这个只需要对两个元素考虑顺序,因为相邻两个有大小关系符合冒泡排序的要求,从而可以对整个序列排序

    例题如:10.12天山折梅手、Noip国王游戏

    最值问题

    可以考虑从大往小做或者从小往大做,例如从小往大加边就是Kruscal重构树的过程

    研究成果

    名字取得太高大上了嗯只是平时的一些小想法

    数论分块套数论分块的复杂度

    数论分块得到(frac{n}{i})后再对其数论分块

    (Ans<nsum_{i=1}^{sqrt n}sqrtfrac{1}{i})

    又有公式(sum_{i=1}^{n}frac{1}{sqrt i}<2sqrt n)(先假设,然后用数学归纳法证明)

    所以(Ans<n^{frac{3}{4}})即为其估计复杂度,实际上要小得多

  • 相关阅读:
    高精度计算
    c++ sort
    算法分类小结
    二叉树层序遍历
    clion windows c++环境配置 mingw
    kafka,filebeat 配置
    centos7 源码安装mysql5.7
    如何优雅的生成及遍历python嵌套字典
    Java Swing 绝对布局管理方法,null布局【图】
    python3.4+pymssql 中文乱码问题解决
  • 原文地址:https://www.cnblogs.com/xzyxzy/p/9903905.html
Copyright © 2011-2022 走看看