摘要: 斐波那契数列#includeint main(){int n,i;long long f[71]={0,1};for(i=2;i<=70;i++)//记得是等于70f[i]=f[i-1]+f[i-2];while(scanf("%d",&n)!=EOF){printf("%lld\n",f[n]);}return 0;}//本题用递归会超时 阅读全文
posted @ 2013-10-06 23:01 小薇林 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(12; f(1)=1,f(2)=2;海涛:第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。---------------------------------------------------- 阅读全文
posted @ 2013-10-06 22:50 小薇林 阅读(268) 评论(1) 推荐(0) 编辑
摘要: 题目描述:输入一个链表,从尾到头打印链表每个节点的值。输入:每个输入文件仅包含一组测试样例。每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。输出:对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。样例输入:12345-1样例输出:54321推荐指数:※来源:http://ac.jobdu.com/problem.php?pid=15111.直接使用栈[cpp] view plaincopy#include#include#include#includeusingnam 阅读全文
posted @ 2013-10-06 21:44 小薇林 阅读(312) 评论(2) 推荐(0) 编辑
摘要: 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。输入:每个输入文件仅包含一组测试样例。对于每组测试案例,输入一行代表要处理的字符串。输出:对应每个测试案例,出经过处理后的字符串。样例输入:We Are Happy样例输出:We%20Are%20Happy推荐指数:※来源:http://ac.jobdu.com/problem.php?pid=1510这也是海涛的《剑指offer》的题目。[cpp]view plaincopy#include#include#include#inc 阅读全文
posted @ 2013-10-06 21:31 小薇林 阅读(206) 评论(0) 推荐(0) 编辑
摘要: #include int binary_search( int num[], int t ,int begin, int end ){ int left = begin; int right = end; while( left num[mid] ){ left = mid+1; }else { right = mid-1; } } return 0;}int main(){ int a[1000000]; int m,n; int target; while( scanf("%d%d",&m,&n) != EOF ){ scanf("%d&quo 阅读全文
posted @ 2013-10-06 20:58 小薇林 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 装载请注明涞源chengyaogen.blog.chinaunix.net哈夫曼树的基本概念哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。(1)路劲(Path):从树中的一个结点到另一个结点之间的分支构成两个结点间的路径。(2)路径长度(Path Length):路径上的分支树。(3)树的路径长度(Path Length of Tree):从树的根结点到每个结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。(4)结点的权(Weight of Node):在一些应用中,赋予树中结点的一个有实际意义的 阅读全文
posted @ 2013-10-06 19:27 小薇林 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入:输入有多组数据。每组输入一个n(1#includeint main(){ int d,n,i,j,a[1101]; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&d); if(n<(int)pow(2,d-1)) printf("EMPTY\n"); else { ... 阅读全文
posted @ 2013-10-06 19:26 小薇林 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 1、已知前序中序求后序输入:两个字符串,其长度n均小于等于26。第一行为前序遍历,第二行为中序遍历。二叉树中的结点名称以大写字母表示:A,B,C....最多26个结点。输出:输入样例可能有多组,对于每组测试样例,输出一行,为后序遍历的字符串。样例输入:ABCBACFDXEAGXDEFAG样例输出:BCAXEDGAF假设前序遍历为 adbgcefh, 中序遍历为 dgbaechf 前序遍历是先访问根节点,然后再访问子树的,而中序遍历则先访问左子树再访问根节点 那么把前序的 a 取出来,然后查找 a 在中序遍历中的位置就得到 dgb a echf 那么我们就知道 dgb 是左子树 echf 是右子 阅读全文
posted @ 2013-10-06 17:45 小薇林 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 方法1:用vector做#include#include#includeusing namespace std;int main(){ int temp,i,n,m; vector v; while (cin>>n) { for (i=0;i>temp; v.push_back(temp); } cin>>m; for (i=0;i>temp; ... 阅读全文
posted @ 2013-10-06 16:49 小薇林 阅读(236) 评论(0) 推荐(0) 编辑
摘要: #include void tixin(int h){ int linewidth=h+(h-1)*2+1; int i,j; for(i=1;i<=h;i++) { for(j=1;j<=linewidth;j++) { if(j<linewidth-h-(i-1)*2) { putchar(' '); } else if(j<linewidth) { putchar('... 阅读全文
posted @ 2013-10-06 16:40 小薇林 阅读(162) 评论(0) 推荐(0) 编辑
摘要: #include #include const int MAX = 10000+10;int n, m;struct node{int l;int r;int sum;}a[MAX>1;build(l, mid, root>1;if (rmid){ update(l, r, root<<1|1);}else{ update(l, mid, root<<1); update(mid+1, r, root<<1|1);}pushup(root);}int main(){int l, r;while (scanf("%d%d", & 阅读全文
posted @ 2013-10-06 14:58 小薇林 阅读(178) 评论(1) 推荐(0) 编辑
摘要: #include int main(){ char a[300]; while(scanf("%s",a)!=EOF) { for(int i=0; a[i]!='\0'; ++i) { char min=a[i]; int u=i; for(int j=i+1; a[j]!='\0'; ++j) { if(a[j]<min) { min=a[j]; ... 阅读全文
posted @ 2013-10-06 12:33 小薇林 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 转自深秋的落叶向量(vector)连续存储的元素Vectorc;c.back()传回最后一个数据,不检查这个数据是否存在。c.clear() 移除容器中所有数据。c.empty()判断容器是否为空。c.front() 传回地一个数据。c.pop_back() 删除最后一个数据。c.push_back(elem) 在尾部加入一个数据。c[i]等同于 c.at(i);列表(list)由节点组成的双向链表,每个结点包含着一个元素listlist1(1,2,3)front()返回第一个元素的引用 intnRet =list1.front()// nRet = 1back()返回最后一元素的引用 int 阅读全文
posted @ 2013-10-06 11:14 小薇林 阅读(252) 评论(0) 推荐(0) 编辑
摘要: #include "stdio.h"#include "stdlib.h"void QuickSort(int*a,int low,int high){ int left,right,pivot; pivot=a[low]; left=low; right=high; while(low=pivot) high--; a[low]=a[high]; while(lowa[0]) ... 阅读全文
posted @ 2013-10-06 10:51 小薇林 阅读(180) 评论(0) 推荐(0) 编辑
摘要: C++ Vector用法深入剖析C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。(1)vector 标识符 ;(2)vector 标识符(最大容量) ;(3)vector 标识符(最大容量,初始所有值);(4) int i[4] = {12,3,4,5};vectorvi(i,i+2);//得到i索引值为3以后的值;(5)vector > //vi 定义2维的容器;记得一定要有空格,不然会报错vectorline //在使用的时候一定要首先将vi个行 阅读全文
posted @ 2013-10-06 10:10 小薇林 阅读(919) 评论(1) 推荐(1) 编辑
摘要: 指针和引用的区别一、C++中引用和指针的区别指针初始化的时候,可以指向一个地址,也可以为空。引用必须初始化为另一个变量.int ival = 1024;int *pi = &ival; // a pointerint &rval = ival; // a reference二、估计很多人在编写C++程序都或多或少的会用到pointer 和 reference这两种东西,但是他们两者到底有什么样的区别和联系呢,相信大多数人是不太了解的,今天我就两者的区别和联系从实际程序的角度来加以区别。C/C++中的指针其实就是一个变量,和其他类型的变量是一个样子的,它是一个占用四字节的变量(3 阅读全文
posted @ 2013-10-06 01:34 小薇林 阅读(181) 评论(0) 推荐(0) 编辑