一类 O(1) 算法的总结
这里要注意一下, 一部分 O(1) 算法是需要 \(O(n)\) 或者 \(O(\sqrt n)\) 预处理的...
1.
O(1) 求 1~n 的异或和:
inline int calc(R int n){int t=n&3;return t&1?(t/2^1):(t/2^n);}
2.
O(1) GCD:
zzq 大佬的 blog 里面有写,我还搬下来做过板子...
某些 数据下会比带 log 的算法高到不知道哪里去,然鹅随机情况嘛...咳咳,我只能说,人家 O(1) 是要预处理的...
3.
O(1) 前缀 k 次和:
类似这么个式子: \(\sum_{i=0}^n i^k\) (虽说左边界是 0 是 1 没什么关系,毕竟 k 也不会等于 0 )
对于 k=1 : 原式= \((n+1)n\over 2\)
对于01314413 k=2 : 原式= \(n(n+1)(2n+1)\over 6\) 或者 \(n(n+{1\over 2})(n+1)\over 3\) 也挺好记的
对于 k=3 : 原式= \((n+1)^2n^2\over 4\) ,其实就是 k=1 的情况平方了一下...
4.
O(1) 逆元
需要 O(n) 预处理,详情看这里呗,顺便 O(n) 前缀积一下就是阶乘逆元了
5.
O(1) 快速幂
一个大前提是快速幂的底数 x 固定,比如说是 2
这样我们可以 \(O(\sqrt P)\) 预处理出 \(x^0,x^1,...,x^{\sqrt P -1} , x^{\sqrt P},x^{2 \sqrt P},...,x^{P}\)
然后我们就可以愉快地 O(1) 查询了
一类 O(1) 算法的总结的更多相关文章
- scikit-learn 支持向量机算法库使用小结
之前通过一个系列对支持向量机(以下简称SVM)算法的原理做了一个总结,本文从实践的角度对scikit-learn SVM算法库的使用做一个小结.scikit-learn SVM算法库封装了libsvm ...
- [0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程
忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处. ——奥维德 一.学习目标 · 回顾在计算机科学.编程和问题解决过程中的基本知识: · 理解“抽象”在问题解决过程中的重要作用: · 理解并实现抽象 ...
- MapReduce 支持的部分数据挖掘算法
MapReduce 支持的部分数据挖掘算法 MapReduce 能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立,彼此之间不会有牵制,待并行处理完这些子问题后,任务便被解 ...
- Matlab实现K-Means聚类算法
人生如戏!!!! 一.理论准备 聚类算法,不是分类算法.分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类.聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类. ...
- FP—Growth算法
FP_growth算法是韩家炜老师在2000年提出的关联分析算法,该算法和Apriori算法最大的不同有两点: 第一,不产生候选集,第二,只需要两次遍历数据库,大大提高了效率,用31646条测试记录, ...
- Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)
聚类算法是一类非监督学习算法,在有监督学习中,学习的目标是要在两类样本中找出他们的分界,训练数据是给定标签的,要么属于正类要么属于负类.而非监督学习,它的目的是在一个没有标签的数据集中找出这个数据集的 ...
- 实验楼 1. k-近邻算法实现手写数字识别系统--《机器学习实战 》
首先看看一些关键词:K-NN算法,训练集,测试集,特征(空间),标签 举实验楼中的样例,通俗的讲讲K-NN算法:电影有两个分类(标签)-动作片-爱情片.两个特征--打斗场面--亲吻画面. 将那些数字和 ...
- Java程序算法设计视频分享,需要的来
每年都会有人说,IT行业饱和了,根本就找不到工作,其实,我想说的是,不是工作难找,而是你自己不够好! 前几天看到一CEO在微博上吐槽: 前几天招一算法工程师我们给了8万月薪*14+奖金,人家去阿里拿5 ...
- 一句话总结kNN算法
一句话总结kNN算法 核心:模板匹配,将样本分到离它最相似的样本所属的类. kNN算法本质上使用了模板匹配的思想.要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本 ...
随机推荐
- POJ 3414:Pots
Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11661 Accepted: 4940 Special J ...
- layer弹层
获得 layer 文件包后,解压并将 layer 整个文件夹(不要拆分结构) 存放到你项目的任意目录,使用时,只需引入 layer.js 即可. 注意:引入layer.js前必须先引入jquery1. ...
- setUp() and setUpBeforeClass()
The @BeforeClass and @AfterClass annotated methods will be run exactly once during your test run - a ...
- Effective C++ 条款42
本节条款我们讨论一下class 关键字和typename关键字的不同以及对于模板函数(template function)的影响. 例如以下代码: template<class T> T ...
- C系列语言终极校对宝典【第一、第二部分】
第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一 ...
- YARN commands are invoked by the bin/yarn script.
Apache Hadoop 2.9.0 – YARN Commands http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-sit ...
- Java,如何获取文件的MD5值
MessageDigest类封装得很不错,简单易用 不多说,直接上代码 import java.io.FileInputStream;import java.security.MessageDiges ...
- iOS 中代码获取当前版本号
[1]概念 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到. Version在plist文件中的key是“CF ...
- JS基础篇--JS的event.srcElement与event.target(触发事件对象)
IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...
- Unity5.6打包问题
将unity切换到5.6版本后打Android包时,提示android sdk tools version低于compile version,于是更新了android-sdk(下载了Android-S ...