![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
无
lwz_159
原acmer(已退役)
展开
-
STL函数总结
unique()unique() 位于<algorithm>头文件中,其作用是元素去重,即删除序列中所有相邻的重复元素。其删除元素,只是一个伪去除,只是重新排列了序列中的元素,将相邻的重复元素添加到容器末尾。简单来说,使用 unique() 后,容器的长度没有变,只是元素顺序改变了。其返回值是去重之后的尾地址,减去数组 a 的起始地址后所得到的就是 a 中去重后的元素个数。int a[12]={1,1,1,2,2,3,3,3,4,5,6,6};int len=unique(a,a+12原创 2020-07-23 22:53:20 · 387 阅读 · 0 评论 -
最大公约数与最小公倍数求法(欧几里得算法)
1.最大公约数最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。求最大公约数的常用方法为辗转相除法。实现方法如下:int gcd(int a,int b) //辗转相除法{ return b?gcd(b,a%b):a; //用递归的方法} 2.最小公倍数两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外...原创 2020-02-01 11:33:58 · 636 阅读 · 0 评论 -
动态规划(附dp的相关习题)
线性dp,背包问题,区间dp,状态压缩dp,树形dp.......原创 2020-03-26 22:37:22 · 719 阅读 · 0 评论 -
贪心算法(附贪心相关习题)
相关题目:1.Stripies2.Protecting the Flowers原创 2020-03-13 19:14:46 · 817 阅读 · 0 评论 -
高精度计算
高精度计算在平时并不是很常用,但是还是一个要掌握的知识点,高精度计算的题目难度不大,方法也比较简单,就是用一个数组来存储一个很长的数的每一位,然后在进行加、减、乘、除这四个基本运算,其实高精度计算的题目只记住四个模板就可以。一.高精度加法#include <iostream>#include <cstring>#include <string>#inc...原创 2020-03-08 09:45:50 · 287 阅读 · 0 评论 -
前缀和与差分
一.前缀和假如一个数组中有n个数,a[1]、a[2]、a[3]…a[i]…a[n]。要求数组a[1]到a[n]的和,正常情况下,我们要用一个循环编历这个数组,来求这个数组的和,这样的话时间复杂度为o(n),而如果用前缀和进行优化的话,就可以将时间复杂度从o(n)直接优化到o(1),是一个非常常用的数组求和的优化方法。一维前缀和就是将前面的数进行累加s[n]=a[1]+a[2]+...+a[n]...原创 2020-03-06 22:59:21 · 647 阅读 · 0 评论 -
排序算法
1.冒泡排序冒泡排序的基本思想是:一个有n个数的数组a[n],从第一个开始,依次比较相邻的两个数是否位逆序对(大的在前,小的在后),则交换这两个数。经过一轮的比较之后,数组中最大的数会被拍到最后面,这样n个数的排序规模就转换为了n-1个数的排序规模。实现代码如下:for(int i=n-1;i>=1;i--) //进行n-1次冒泡for(int j=0;j<i;j++) ...原创 2020-02-29 13:14:06 · 249 阅读 · 0 评论