一些小知识
RRicky_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【vector】用法
原文—是一个能够存放任意类型的动态数组。 简单的用法: vectortest;//建立一个vector test.push_back(1); test.push_back(2);//把1和2压入vector这样test[0]就是1,test[1]就是2 int i =test.at(1);//at访问,i为2 //注意是从0 开始的头文件#include<vector>.创建vector原创 2017-08-08 00:43:01 · 449 阅读 · 0 评论 -
【floor函数】【ceil函数】
floor函数: floor(x),有时候也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接取按照数轴上最接近要求的值左边的值,也就是不大于要求的值的最大的那个)。 头文件:#include < math.h>例如: x = 6.04; y = floor( x ); y的值为6.0.与floor函数对应的是ceil函原创 2017-08-12 20:26:12 · 741 阅读 · 0 评论 -
【#include<algorithm>】中包含的可以直接调用的函数
#include<algorithm>using namespace std;这个头文件中包含了一些可以直接调用的函数,在写程序时就会比较方便 常见的有: max ():返回两个元素中的较大的一个; min() :两个元素中的较小者。 swap() :交换存储在两个对象中的值。 unique :清除序列中重复的元素,和 remove 类似,它也不能真正的删除元素。重载版本使用了自定义的操转载 2017-08-04 23:32:54 · 1833 阅读 · 0 评论 -
【求一个数n的前几位】(pow函数)
求一个数的首位:1561351516565465165=a.b * 10^c log10(a.b * 10^c)=log10(a.b) + log10(10^c)=log10(a.b) + c=x a.b < 10 log10(a.b) < 1 10^(x-c) = a.b a就是首位#include<cstdio>#include<cmath>int main(){ lon原创 2017-08-04 23:53:16 · 462 阅读 · 0 评论 -
【容斥原理】求1~n有多少个数与k互质
//n除以奇数个数相乘的时候是加,n除以偶数个数相乘的时候是减。#include<cstdio>int num[6] = {2,3,5,7};int n;int solve(){ int ans = 0; //是那四个数的倍数的数的数量 for (int i = 1 ; i < (1<<4) ; i++) //选数 { in原创 2017-08-03 00:38:16 · 607 阅读 · 0 评论 -
【计算n阶乘后面有多少个0】
一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可. 题解中给出的求解因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加. #include <stdio.h> #include <string.h> #include <algorithm原创 2017-08-04 23:18:33 · 781 阅读 · 0 评论 -
【unique函数】
unique()函数:是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。头文件:#include<algorithm>using namespace std;unique(num,mun+n)它并不真正把重复的元素删除,该函数是把重复的元素移到后面去了,然后依然保存到了原数组中,因为unique去除原创 2017-08-19 12:33:10 · 790 阅读 · 0 评论 -
【lower_bound】【upper_bound】二分查找
头文件: #include<algorithm> using namespace std; //一般加上这个lower_bound:查找序列中的第一个出现的值大于等于val的位置(地址) upper_bound:返回的是第一个一个大于val的位置(地址) 它们要求必须提供至少前向迭代器,且容器元素必须有序 函数lower_bound()在first和last中的前闭后开区间进行二分原创 2017-08-09 20:56:57 · 414 阅读 · 0 评论 -
【快速幂】【快速幂取模】
原文:http://www.cnblogs.com/CXCXCXC/p/4641812.html快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。 首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假设我们要求转载 2017-08-14 15:13:59 · 457 阅读 · 0 评论 -
【memset函数】
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法. 头文件:< memory.h>或< string.h> 如果要把一个char a[20]清零,是 memset(a,0,20*sizeof(char)); 对int vis[xx]清零,时memset(vis,0,sizeof(vis));第二个参数可以填 0,-1,1,其他 ; 0:把原创 2017-08-08 00:28:07 · 1725 阅读 · 0 评论 -
【0x7FFFFFFF】【0x3f3f3f3f】
0x7FFFFFFF:最大的整数型int#define INF 0x3f3f3f3f:单词infinite是无穷大的意思。 这里的INF就是infinite的简写,就是表示一个很大的数。。 0x3f3f3f3f 就是表示一个十六进制的数,前面的0x表示是十六进制。 后面的3f3f3f3f就是一个十六进制的数字。0x3f3f3f3f的十进制是1061109567,也就是10^9级别的(和0x7f原创 2017-08-08 00:32:25 · 1956 阅读 · 0 评论 -
【pair函数】
1.定义(构造):pair<int, double> p1; //使用默认构造函数pair<int, double> p2(1, 2.4); //用给定值初始化pair<int, double> p3(p2); //拷贝构造函数2.访问两个元素(通过first和second):pair<int, double> p1; //使用默认构造函数p1.first = 1;p1.second原创 2017-08-08 00:35:38 · 1402 阅读 · 0 评论 -
[cout]
输出,格式为cout<<n;如果你想隔行输入的话,用cout<<n<<endl;如果你想空格的话为cout<<n1<<" "<<n2;要输出变量话需要提前定义,不是变量的话,要加引号,如cout<<"Hello,World!"<<endl;原创 2017-11-12 22:47:36 · 402 阅读 · 0 评论
分享