自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 sort

-sort初学数组,我们都知道数组排序可以用选择法,也可以用冒泡法,今天介绍一个更加方便简单的函数sortsort在c++ 中使用,可以有2个或3个参数头文件#include< algorithm >using namespace std;2个参数:例如:a[50]={-1,2,4,3,1},执行sort(a,a+5),就会变成{-1,1,2,3,4}3个参数先定义...

2018-11-28 16:32:41 134 1

原创 二分

-二分例如:数列a[7]={1,7,7,13,14,19,28},想要找到19的下标,可以暴力循环也可以使用hash下面介绍第三种方法,二分(非递增数列或者非递减数列使用时会缩小很多时间复杂度)我们可以先把这7个数分成两份1,7,7,13,和14,19,28,左边最大值<19,左边部分直接舍弃,再对右边部分进行重复分,取得这种循环。部分代码如下:int l=0,r=6;while...

2018-11-28 16:11:03 126 1

转载 尺取法

-尺取法转载自http://blog.chinaunix.net/uid-24922718-id-4848418.html有这么一类问题,需要在给的一组数据中找到不大于某一个上限的“最优连续子序列”于是就有了这样一种方法,找这个子序列的过程很像毛毛虫爬行方式比较流行的叫法是“尺取法”。给长度为n的数组和一个整数m,求总和不小于m的连续子序列的最小长度n = 10,m = 155 1 3...

2018-11-22 22:41:39 110 2

原创 GCD最大公约数

-GCD已知两个正整数a,b求最大公约数。(a,b)可以写成a=b* q1+r1的形式(q1,r1都是实数)(a,b)的GCD即为(b,r1)的GCD所以b=r1* q2+r2;r1=r2* q3+r3;……rn=rn+1* qn+2;所以最大公约数为qn+2。证明:(a,b)的GCD即为(b,r)的GCD (a=b * n+r)设v为a,b的公约数a=tv,b=...

2018-11-22 20:56:21 199 1

原创 快速幂

- 快速幂快速幂和快速乘(点击这里了解快速乘)所运用的思想基本一致(都是转化成二进制),故这里不做过多解释。ab,将b化为二进制,ab=x1 * a1 * x2 * a2 * x4 * a4 * …代码如下:int fast_pow(int a,int b,int c){ int ans=1; a%=c; while(b) { if(b%2) ans=(ans%c*a%...

2018-11-22 20:25:11 84

原创 同余定理

- 同余定理a * b%c=(a%c) * (b%c)%c;(a+b)%c=(a%c+b%c)%c;(a-b)%c=(a+c-b)%c;注意注意!!!!!!同余定理只适用于+,—,*,绝对绝对不适用于÷!!!

2018-11-22 20:08:11 182 1

原创 快速乘

- 快速乘基本原理 由于计算机底层设计的原因,做加法往往比乘法快的多,因此将乘法转换为加法计算将会大大提高(大数,比较小的数也没必要)乘法运算的速度,除此之外,当我们计算a*b%mod的时候,往往较大的数计算a*b会超出long long int的范围,这个时候使用快速乘法方法也能解决上述问题.(来自其他帖子)int fast_mul(int a,int b,int c){ int ...

2018-11-22 19:59:31 114 1

原创 前缀和

- 前缀和(参考了另外一篇博客)ans[i]=ans[i-1]+a[i];(先把公式写这里)例如:已知两个正整数a,b,求在a和b之间(包含a和b)(1<=a<b<=1000000)的所有整数的十进制表示中1出现的次数,输入多组数据,不超过100000组,每组答案占1行。如果把a,b之间每个数的1都找出来,再相加,毫无疑问要时间超限。所以我们要改变方法,先写一个被调函数,...

2018-11-22 16:43:12 147 1

原创 素数打表

-素数打表最初学c语言的时候,我们学了两种求素数的方法:例如:从键盘上输入一个大于1的正整数m,判断它是不是素数,是输出yes,不是输出no方法1:for(i=2;i<=m-1;i++) if(m%i==0) break;if(i==m) printf("yes\n");else printf(&qu

2018-11-22 16:37:14 271

原创 hash

- hash假如有这么一个题,有一个b[100000],数组里面的每个元素的值大于0小于100000(不重复),现在输入一个数据t,代表接下来要输入的数据数量,每个数据占一行,t小于等于10000,设后来输入的数据为a,(1<a<100000),若数组b存在a,输出yes,否则,输出no。如果按照我们最初学的,代码将是下面这个样子:for(i=1;i<=t;i++){ ...

2018-11-22 16:28:24 118 1

原创 EOF

- EOFEOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码...

2018-11-22 16:23:24 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除