- 博客(31)
- 收藏
- 关注
原创 ZOJ2136解题报告
算法分析:这是个动态规划的问题,先求其子集,保存子集的结果,然后在子集的基础上再进行计算。此题要求最大升序子序列的长度,可以逆向考虑,先计算以第i个数为终点的最大升序子序列的长度,然后计算i后面的类似子序列。遍历的时候从首部开始,依次计算,最后求出最大的升序子序列。数据结构:使用数组,vector.代码实现:#include #include #include using nam
2012-07-17 11:10:58
1051
原创 boj64解题报告
算法分析:问题是所有小朋友都能拿到喜欢的糖果的概率。这是个“且”的关系。根据每个小朋友喜欢的糖果颜色,计算在此次能拿到匹配的糖果的概率,然后加入a颗不同颜色的糖果,等待下次抽取。以此,计算满足所有小朋友爱好的概率。数据结构:使用vector存储小朋友的爱好,以及原始糖果数量。代码实现:#include #include #include #include #include u
2012-07-16 20:55:37
480
原创 计算n的阶乘
#include int f(int n){ int k; if(n > 1) k = n*f(n-1); else return 1; return k; } int main(int argc,char *argv[]){ int k = 4; printf("%d",f(k)); getchar(); retu
2012-04-03 16:35:27
586
原创 函数调用计算面积
#include #include #define PI 3.1415926float area(float r);float perimeter(float r);int main(int argc,char* argv[]){ float r; float s,l; printf("input radius:\n"); scanf("%f",&r
2012-03-02 16:48:22
1373
原创 scanf函数
//#include "stdafx.h"#include #include int main( ){ char string[50]; scanf("%[^\n]",string);// %[] 扫描字符集合,直到回车换行符号为结束。 printf("%s\n",string); /* char str[80];
2012-03-01 11:41:49
404
原创 关于multimap
multimap与map基本相同,唯独不同的是multimap允许插入重复键值的元素,而map不允许插入重复键值。#pragma warning(disable:4786)#include#include#includeusing namespace std;int main(int argc,char* argv[]){ multimap m;
2012-02-29 21:08:30
536
原创 一道算法题。
题目是这样的:N team competitions, numbered 0,1,2 respectively. . . . N-1, known comparison of strength of relationship, stored in a two-dimensional array w[n][n ], w[i][j ] represents the value of a number
2012-02-09 11:26:32
594
原创 一道算法题的解析
看到过这么一个算法题,据说是一个面试题。一个整数数组,包含有正数和负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时间复杂度O(N),空间O(1) 先看个时间复杂度O(n^2)的:for(i=n-1; i>=0; i--){ int j=i;
2012-02-08 12:31:13
435
原创 set集合容器
#include#includeusing namespace std;int main(int argc,char* argv[]){ set s; s.insert(8); s.insert(1); s.insert(12); s.insert(6); s.insert(8);//重复,无法插入 set::iterator it;
2012-02-03 10:57:46
369
原创 sstream
#include#include#includeusing namespace std;//C++方法,将数值转化为string。string converttostring(double x){ ostringstream o; if(o<<x) return o.str(); return "error";}//C++方法,将stri
2012-02-03 08:29:41
591
原创 sscanf函数
#include#includeusing namespace std;int main(int argc,char* argv[]){ string s1,s2,s3; char sa[100],sb[100],sc[100];//把一个字符串分离成字串,分隔符为空格。 sscanf("abc 123 pc","%s %s %s",sa,sb,sc)
2012-02-02 20:15:39
466
原创 string对象与字符数组互操作
#include#includeusing namespace std;int main(int argc,char* argv[]){ string s; char ss[100]; scanf("%s",&ss);//输入字符串到字符数组中 s=ss; printf(s.c_str());//printf输出字符串对象,要采用c_s
2012-02-02 15:04:34
672
原创 string类型的数字化处理
#include#include#include#includeusing namespace std;int main(int argc,char* argv[]){ string s; s="1234059"; int i; int sum=0; for(i=0;i<s.length ();i++) { if(s
2012-02-02 11:59:36
574
原创 string对象的比较
#include#includeusing namespace std;int main(int argc,char* argv[]){ string s; s.append("cat dog cat");//s比cat字串大,返回1 cout<<s.compare ("cat")<<endl;//s与cat dog cat字串相等,返回0
2012-02-02 11:42:26
458
原创 字符串的查找
#include#includeusing namespace std;int main(int argc,char* argv[]){ string s; s.append("cat dog cat"); cout<<s.find ('c')<<endl;//查找第一个字符'c',返回下标值 cout<<s.find ("c")<<en
2012-02-02 10:21:21
429
原创 字符串的长度
#include#includeusing namespace std;int main(int argc,char* argv[]){ string s,t; /*s.append("123456"); string::iterator it=s.begin (); s.erase(it+2); cout<<s<<endl;
2012-02-02 09:59:44
452
原创 算法应用
分治法(二分检索,快速排序,归并排序), 贪心算法(Huffman编码,Prim算法,Kruskal算法,Dijstra算法), 动态规划(Prim算法,Dijstra算法,Floyd算法,最佳二叉搜索树), 栈的引用(深度优先周游), 队列的应用(广度优先周游
2012-02-01 19:38:34
340
原创 位操作运算
前些天遇到一段关于c语言位运算的代码。 英文原文如下: As an illustration of some of the bit operators, consider the function getbits(x,p,n) that returns the (right adjusted) n-bit field of x that begins at posi
2012-02-01 10:01:38
441
转载 搜索引擎原理及其组成部分和功能
搜索引擎分为搜索器,索引器,检索器,人机接口四部分。建立索引是个复杂的过程,索引数据库是搜索引擎前端和后端的联系桥梁,可以说起到了管理器的作用。 下面对整个过程做个简要介绍: (1)搜索器(俗称的网络蜘蛛Robot)从互联网上抓取网页,把网页送入网页数据库,从网页中“提取URL”,把URL送入URL数据库,网络蜘蛛根据得到网页的URL,继续抓取其它网页,反复循环直到把所
2012-02-01 08:54:08
4211
原创 大小端模式
大端模式:数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端模式:大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
2012-01-31 19:15:15
477
2
原创 向量的大小
#include#include#includeusing namespace std;int main(int argc,char* argv[]){ vector v(10); for(int i=0;i<10;i++) { v[i]=i; }//输出向量是否为空,如果非空,返回逻辑假(0),否则返回逻辑真(1). co
2012-01-31 16:57:52
917
原创 sort函数
自己设计一个名为comp的排序比较函数,然后把这个函数指定给sort算法,那么,sort就根据这个比较函数指定的规则进行排序。#include#include#includeusing namespace std;bool comp(const int &a,const int &b){ if(a!=b)return a>b; else return a>b;
2012-01-31 12:39:42
345
原创 。。。
机器学习;数据挖掘;信息检索;文本分类/聚类;自然语言处理;分布式计算;个性化推荐及特征建模。谷歌、bing、百度、雅虎、搜狗、搜搜、宜搜、中搜、有道、人民搜索
2012-01-31 12:32:37
304
原创 reverse反向排列算法
reverse算法可以将向量中某段迭代器区间元素反向排列。#include#include#includeusing namespace std;int main(int argc,char* argv[]){ vector v(10); for(int i=0; i < 10;i++) { v[i]=i; } revers
2012-01-31 12:14:24
1459
原创 vector向量容器的删除
erase()方法可以删除vector中迭代器所指的一个元素或一段区间中所有元素。clear()方法则一次性删除vector中所有的元素。 #include#includeusing namespace std;int main(int argc,char* argv[]){ vector v(10); for(int i=0;i<10;i++)
2012-01-31 09:23:57
7272
原创 关于vector对象的insert。
vector向量容器中使用insert()方法,可以在vector对象的任意位置前插入一个新的元素,书上说,insert()方法要求插入的位置,是元素迭代器的位置,而不是元素的下标,刚开始不太明白什么意思,直到看了一个程序后才知道。#include#includeusing namespace std;int main(){ vector v(3); v[0]=2;
2012-01-31 08:52:44
49245
12
转载 垂直搜索
垂直搜索技术主要分为两个层次:模板级和网页库级。 模板级是针对网页进行模板设定或者自动生成模板的方式抽取数据,对网页的采集也是针对性的采集,适合规模比较小、信息源少且稳定的需求,优点是快速实施、成本低、灵活性强,缺点是后期维护成本高,信息源和信息量小。 网页库级就是在信息源数量上、数据容量上检索容量上、稳定性可靠性上都是网页库搜索引擎级别的要求,和模板方
2012-01-30 20:17:02
801
转载 分治贪心法动态规划适用场合
分治法能解决的问题一般具有以下特征: 1,该问题的规模缩小到一定的程度就可以容易地解决; 2,该问题可以分解为若干个规模大小的相同问题,即该问题具有“最有子结构性质”; 3,利用该问题分解出的子问题的解可以合并为该问题的解; 4,该问题所分解初的各个子问题是相互独立的,即子问题之间不包含公共的子问题;上述的第一条特征是绝大多数问题都可以满足
2012-01-29 20:41:25
1423
原创 vevector向量容器
vector向量容器不仅能像数组一样对元素随机访问,还能在尾部插入元素。具有内存自动管理功能,对于元素的插入和删除,可动态调整所占内存空间。vector的容量可以事先定义一个固定大小,也可事先不定义,随时使用push_back从尾部扩张元素,也可以使用insert()在某元素位置前插入新元素。begin()返回的是首元素位置的迭代器,end()返回的是最后一个元素的下一个元素位置的迭代器。
2012-01-26 08:29:48
456
原创 汇编语言中用到的寄存器
AX成为累加器,I/O指令均使用该寄存器。BX为基址寄存器,访问内存时用于存放基地址。SP为堆栈指针寄存器,BP为基址指针寄存器,在做数组和字符运算时,用于存放内存的便宜地址。SI为源变址寄存器,DI为目的变址寄存器,用于数据块操作的内存寻址。
2012-01-22 15:45:06
458
原创 关于strcasecmp的一个小程序
在网上看到一个关于strcasecmp的一个例子程序,如下:#include#includeint main(){ char *a="abcdef"; char *b="AbCdEf"; if(!strcasecmp(a,b)) printf("%s=%s\n",a,b); return 0;} 可是在编译之后出现错误提示:error
2012-01-22 15:29:11
1134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人