方法思想与知识点
Mercury_Lc
宁愿笑着哭
展开
-
Hz频率转换单位
Hz之间是千进制的。1KHz = 1e3Hz1MHz = 1e3KHz1GHz = 1e3MHz1THz = 1e3GHz原创 2021-09-08 08:41:40 · 1904 阅读 · 0 评论 -
bitset
bitset定义与初始化bitset是STL提供的用于记录01串的容器也就是bitset的每个元素只能为0/1用bitset之前别忘了: #include<bitset>1以下是正确的定义方式: bitset<16> a; //第0~15位都是0bitset<6> b(string("010010")); //用字符串初始化b...转载 2018-10-15 20:33:35 · 288 阅读 · 0 评论 -
康托展开与康托逆展开
康托展开康托展开,用人话说出来..就是把一个数组的多种排序情况对应用数字表示出来公式:X = a[i] * (n-1)! + a[i-1] * (n-2)! + … + a[1] * 0!其中a[i]表示后面比该元素小的元素的个数举个例子,有5个数1 2 3 4 5共有5个元素,所以一共有5!种排序方法如果用康托展开序列35142第一个元素是3,在后面的序列中,有2个比3小的...转载 2018-10-19 15:04:26 · 163 阅读 · 0 评论 -
Bellman_Ford算法详解
待更新原创 2018-12-02 18:19:33 · 570 阅读 · 0 评论 -
ST表 「 浅显理解 」
ST 表是个好东西,虽然前些天 ldq 学长已经讲完啦,但是那天他讲了那么多,让智商受限的我完全没有全部接受,选择性的扔掉了一部分(其实不舍的扔,记不住QAQ)。ST 表最简单的应用就是查询区间最大值(或着最小值,这里以最大值为例),它(单纯 ST 表自己)需要你先修改之后(如果有修改要求),得到一个确切数组之后,经过 O ( nlogn ) 的预处理,然后就可以做到 O ( 1 ) 查询...原创 2018-12-05 20:20:23 · 824 阅读 · 1 评论 -
C++ 和 G++ 的区别
转载:http://blog.csdn.net/wr_technology/article/details/53414447 今天做题,突然遇到了一些问题,就好奇的百度了一下,看了这篇写的蛮好的博客。一、OJ提交题目中的语言选项里G++与C++的区别http://www.th7.cn/Program/cp/201405/199001.shtml首先更正一个概念,C++是一门计算...转载 2018-12-22 21:57:00 · 732 阅读 · 0 评论 -
哈希表 ( hash ) 中 ASL 和不成功 ASL 的计算
以下求解过程是按照“计算机统考的计算方法”,不同的老师、教材在“处理冲突”上可能会有不同的方法,所以最主要的是掌握原理即可,对于考研的朋友最好掌握统考真题的解题方法。题目例子:(2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题第一题)将关键字序列(7、8、30、11、18、9、14)散列存储到散列表中。散列表的存储空间是一个下标从0开始的一维数组。散列...转载 2018-12-19 11:27:43 · 6227 阅读 · 0 评论 -
二叉平衡树的调整
出自:http://www.cnblogs.com/lezhifang/p/6632355.html 说明:仅用于个人复习使用,如有侵权,立即删除一:平衡二叉树的概念平衡二叉树(Balanced binary tree)又称为AVL树,是一种特殊的二叉排序树,且左右子树的高度之差的绝对值不超过1.定义:平衡二叉树或为空树,或为如下性质的二叉排序树:(1)左右子树深度之差的绝...原创 2018-12-25 15:31:40 · 1017 阅读 · 0 评论 -
C/C++读入含有空格的字符串
好久之前遇到 gets()不准用的情况,所以稍稍参考了一下网上的方法,整理一下。 char st[maxn];string s;1、gets(st);2、scanf("%[^\n]",st);3、getline( cin, s); // 这里s是 string4、cin.get(st , maxn);5、cin.getline(st,maxn); ...原创 2019-02-18 20:43:17 · 877 阅读 · 0 评论 -
或 、与、异或
& 与 (都是1时,结果才为1)表示按位与。&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。二进制与运算规则:1&1=1 1&0=0 0&0=0| 或 (只要有1,那么就是1)表示按位或按位或运算 按位或运算符“|”...原创 2018-10-15 20:19:17 · 13353 阅读 · 0 评论 -
bitset
bitset存储二进制数位。bitset就像一个bool类型的数组一样,但是有空间优化—bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。bitset中的每个元素都能单独被访问,例如对于一个叫做foo的bitset,表达式foo[3]访问了它的第4个元素,就像数组一样。bitset有一个特性:整数类型和布尔数组都能转化成bitset。bitset...转载 2018-10-15 19:53:11 · 144 阅读 · 0 评论 -
快速幂(超级好的板子)
快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 代码实现:int pow_mod(int a, int k){ int ans = 1; while(k) { if(k % 2) ans *= a; a *= a; k...原创 2018-03-18 09:20:21 · 1143 阅读 · 0 评论 -
线段树(结构体建法_QAQ)
线段树(结构体)模板#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>#include<map>#include<cmath>#include<string&am原创 2018-08-03 20:26:48 · 615 阅读 · 0 评论 -
约数个数定理&约数和定理
1、如果我们要求一个数的所有因数的个数会怎么去求呢?首先想到最简单的方法就是暴力求解就可以。当然数据小、或者测试数据少就很简单就可以过了。2、如果求一个区间内的数的所有因数的个数呢?或者求一个区间内的数的因数最大的数以及最大的因数(正因数)的个数?这样的话,数据大一些,组数多一些,可能就要Tle,所以可以想到用唯一分解定理,但是那是适用于分解成素因数,要怎么转化呢?这就需要用到了约...原创 2018-08-10 11:08:54 · 4903 阅读 · 0 评论 -
线段树QWQ
一直没碰过线段树,个人认为好长好难,不过这几天做题遇到了裸的线段树的题,TAT。线段树我理解就是把二叉树的左右节点现在分别看成是两个区间。那么现在这两个区间的端点怎么存放?怎么能够把这个区间里的数(一般指的就是在这个区间的数值的和)存放起来呢?比较传统化的是用一个结构体来存放。比如:struct node{ int l, r; // l,r分别是左右端点 in...原创 2018-08-03 20:00:47 · 187 阅读 · 0 评论 -
输入技巧1
在不知道需要输入多少个数,每个数之间有个空格,当输入换行时结束,如何进行读入操作。#include <iostream>#include <bits/stdc++.h>using namespace std;int a[150];int main(){ int n; char op; while(~scanf("%d", &n...原创 2018-08-26 18:39:40 · 198 阅读 · 0 评论 -
欧拉函数(重要性质)
欧拉函数:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(和1互质的数(小于等于1)就是1本身)。注意:每种质因数只一个。 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4若n是质数p的k次幂, ,因为除了p的倍数外,其他数都跟...原创 2018-08-24 20:46:07 · 1349 阅读 · 0 评论 -
线性素数筛(欧拉筛)(超级好的MuBan)
Problem:找出小于等于n的所有素数的个数。#include <bits/stdc++.h>using namespace std;const int maxn = 1e6;int prime[maxn]; // 欧拉线性素数筛,O(n)bool vis[maxn]; // 标记int Prime(int n) { memset(vis,fa...原创 2018-09-11 16:49:40 · 245 阅读 · 0 评论 -
快速判断一个数是否是素数(模板)
判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路bool isPrime( int num ){ if(num ==2|| num==3 ) //两个较小数另外处理 return 1 ; if(num %6!= 1&&num %6!= 5) //不在6的倍数两侧的一定不是质数 return 0 ...转载 2018-09-14 09:27:01 · 1213 阅读 · 3 评论 -
辗转相除法--最大公约数
辗转相除法是求最大公约数的一种方法,又名欧几里德算法(Euclidean algorithm),求最大公约数的方法还有更相减损法。 这个算法的历史很悠久了,如果你感兴趣,可以去百度一下啦。 这个方法是在一个定理的基础上的,定理是这样的:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如求25和10的最大公约数m,那么25除以10余5,所...原创 2018-02-10 16:44:26 · 577 阅读 · 0 评论