【算法学习】
阿金在森林
这个作者很懒,什么都没留下…
展开
-
sort与qsort的应用
一、qsort 1.int [cpp] view plaincopy int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; //升序排列。if(a>b) return true } qsor转载 2015-07-07 15:14:46 · 400 阅读 · 0 评论 -
翻转
1.反转整型数字(反转前为n,反转后为t) while(n) { t=t*10+n%10; n/=10; } 2.反转数组 void rever_char(char c[],int n) { char temp; int i,j = n-1,m = (n-1)/2; for(i = 0; i <= m; i++) {原创 2015-07-10 20:32:27 · 321 阅读 · 0 评论 -
关于数字与数字数组与字符型数字数组的转换问题
数字temp(长度为n) 数字数组num[n-1] 字符型数字数组str[n-1] 1.将数字转换成数字数组 memset(num,0,sizeof(num)); for(i=n-1;i>=0;i--){ num[i]=temp%10; temp=temp/10; } 2.将数字数组转换成数字 temp=0; for(i=0;i<strlen(num);i++)原创 2015-07-10 19:13:04 · 2199 阅读 · 0 评论 -
做动态规划题的步骤和例子(还在完善中)
度娘上的: 1.将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。保存已解决的子问题的答案,在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。具体的动态规划算法多种多样,但它们具有相同的填表格式。原创 2015-07-24 11:28:51 · 1348 阅读 · 0 评论 -
STL map的基本成员函数
来源:(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html) - C++ map的基本操作和使用_Live_新浪博客 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1. map最基本的构造函数; mapmapstring;转载 2015-07-18 15:32:39 · 4590 阅读 · 0 评论 -
算法收藏(stl 背包 并查集 矩阵乘法 java大数)
STL原创 2016-04-29 16:45:36 · 566 阅读 · 0 评论 -
一些简化程序的东西,慢慢总结
1. scanf("\n%*c%d",&m); Scanf 格式中,如果在%后面、格式字符前面加上一个“*”附加说明符,表示跳过该输入,输入的数据不放入变量中。 而输入的 '\n' 是中和掉输出的 \n 也可以换成 getchar(); scanf("%*c%d",&m); 而 *c 表示忽略一位 也可以改成 scanf("%*1d%d",&m);原创 2016-04-28 19:34:44 · 378 阅读 · 0 评论 -
sscanf 函数的用法
sscanf函数 转自萧凡客 sscanf(str+start,"%d%n",&v,&n); 2011-05-19 20:56:00| 分类: 杭电acm|字号 订阅 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( const char *, const char *, ...); i转载 2017-03-18 16:22:27 · 334 阅读 · 0 评论 -
关于C 的输入格式
1.以EOF作为文件结束标志,按ctrl+z或ctrl+c结束 while(EOF){ } 2.输入一个整数n,接着输入n组测试数据后,结束 int n; scanf("%d",&n) while(n--){ } 3.输入测试数据a,b,直到a,b均为0,即0 0,结束 int a,b; while(scanf("%d%d",&a,&b)&&a&&b){ }原创 2015-07-10 19:34:53 · 546 阅读 · 0 评论 -
__int64 与long long int
__int64 与long long int 在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。 那遇到比40亿要大的数怎么办呢转载 2015-07-23 10:17:11 · 610 阅读 · 1 评论 -
并查集
1定义编辑 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。 2主要操作编辑 初始化 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。转载 2015-08-03 15:58:46 · 460 阅读 · 0 评论 -
判断是否为素数或质数
int isprime(int a){ int i; if(a==1||a==0) return 0; for(int i=2;i<=sqrt(a);i++){ if(a%i==0) return 0; } return 1; } //判断a为素数原创 2015-07-09 10:53:16 · 423 阅读 · 0 评论 -
math.h中一些常用函数
@函数名称: abs 函数原型: int abs(int x); 函数功能: 求整数x的绝对值 函数返回: 计算结果 参数说明: 所属文件: math.h>,stdlib.h> 使用范例: #include stdio.h> #include math.h> int main() { int number=-1234; p转载 2015-07-10 10:32:55 · 5718 阅读 · 0 评论 -
C语言文件的输入输出知识点
文件类型指针 定义文件指针变量的一般形式为: FILE *文件结构指针变量名 例如:FILE *fp; 注意:只有通过文件指针,才能调用相应的文件。 文件的打开(fopen函数) 常用以下方式打开文件: FILE *fp; if ((fp=fopen("file1", "r")) ==NULL ) {printf("cannot open this fil原创 2015-07-11 09:25:45 · 1675 阅读 · 0 评论 -
STL
向量(vector) 连续存储的元素 Vectorc; c.back() 传回最后一个数据,不检查这个数据是否存在。 c.clear() 移除容器中所有数据。 c.empty() 判断容器是否为空。 c.front() 传回地一个数据。 c.pop_back() 删除最后一个数据。 c.push_back(elem) 在尾部加入一个数据。 c[i]转载 2015-07-27 08:41:52 · 419 阅读 · 0 评论 -
qsort函数用法
qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针 用于确定排序的顺序 排序方法有很多种, 选择排转载 2015-07-07 15:09:12 · 306 阅读 · 0 评论 -
sort函数
做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)转载 2015-07-07 15:12:17 · 406 阅读 · 1 评论 -
STL中栈和队列的使用方法
STL 中优先队列的使用方法(priority_queu) 基本操作: empty() 如果队列为空返回真 pop() 删除对顶元素 push() 加入一个元素 size() 返回优先队列中拥有的元素个数 top() 返回优先队列对顶元素 在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。 使用方法: 头文件: #include转载 2015-07-28 17:37:46 · 4260 阅读 · 1 评论 -
C++ STL栈和队列的使用
转载于http://m.blog.csdn.net/blog/ziyuzhao123/39947481 一、栈 栈的定义在头文件中,stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。 定义stack 对象的示例代码如下: stack s1; stack s2; stack的基本操作有:对转载 2015-07-28 17:27:13 · 540 阅读 · 0 评论 -
0x3f3f3f3f...编程中无穷大常量的设置技巧
0x3f3f3f3f...编程中无穷大常量的设置技巧 时间:2014-05-27 14:50 浏览:553人 转自http://aikilis.tk/ 如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只 转自 http://aikilis.tk/ 如果问题转载 2015-07-17 16:07:03 · 464 阅读 · 0 评论 -
STL Vector用法介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览 vector是C++标准模板库中的部分内容,它是一个多功能转载 2017-04-25 09:27:13 · 262 阅读 · 0 评论