自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (1)
  • 收藏
  • 关注

原创 2016华为机试-糖果消消除实现

#include#includeusing namespace std;bool isexchange(char a1[5][5],int x,int y){ int count=1; for (int left=y-1; left >=0; left--) { if (a1[x][y]==a1[x][left]) { count++; } else {

2015-09-10 09:27:59 635

原创 snprintf与sprintf

snprintf(),为函数原型int snprintf(char *str, size_t size, const char *format, ...)。char a[20];i = snprintf(a, 9, "%012d", 12345);printf("i = %d, a = %s", i, a); 000000012345取前8位输出为:i = 12, a = 000000

2015-09-08 09:16:07 516

原创 大数求余

大数求余

2015-09-01 16:59:39 696

原创 2016华为机试-自动售货机

#include#include#includeusing namespace std;int main(){ string str; while(getline(cin,str)) { int countA1=5; int countA2=10; int countA3=14; int money1=5; int money2=5; int money3=

2015-09-01 10:35:20 1732 2

原创 2016华为机试-猴子分桃

#includeusing namespace std;const long N=2147483647;int main(){ int m; while(cin>>m) { int begini=0; long i=0,j=0,count=0; for ( i=1; i < N; i++) { count=0; int flag=0; int b

2015-08-31 12:27:56 857

原创 (int&) 与int(&)

#includeusing namespace std;int main(){float a = 1.0f;cout << sizeof(int) <cout << sizeof(float) <cout << (int)a << endl;//1cout << &a << endl; /*取a的地址十六进制0012FF7C*/cout << (int)&a << endl;/*(

2015-08-31 09:23:52 557

原创 sizeof()各种情况

/*char**a; cout<<sizeof(a)<<endl; char a1[10]="hello"; cout<<sizeof(a1)<<endl;//1*10=40 char a2[]="hello"; cout<<sizeof(a2)<<endl;//6 +'/0' char*a3="hello"; cout<<sizeof(*a3)<<endl;//1 cout<<s

2015-08-25 10:11:26 339

原创 最大子矩阵全1的个数

/*方法是:1、先将0/1矩阵读入x,对每一个非零元素x[i][j],将其更新为:在本行,它前面的连续的1的个数+1(+1表示算入自身)  比如,若某一行为0 1 1 0 1 1 0,则更新为0 1 2 0 1 2 02、对每一个非零元素x[i][j],在第j列向上和向下扫描,直到遇到比自身小的数,若扫描了y行,则得到一个大小为x[i][j]*(y+1)的全1子矩阵(+1表示算入自身

2015-08-13 15:35:13 1149

原创 大端与小端的判断

首先主要是区分地址存放的数据,由低到高#include using namespace std;int checkCPU(void){ union { int a; char b; }c; c.a = 1; return (c.b == 1);}/*1 在c中,联合体(共用体)的数据成员都是从低地址开始存放。2 若是小端模式,由低地址到高地址c.a存放为0x01

2015-08-11 14:30:09 562

原创 string一些常用函数基础

string str("hello world");str.insert (pos,"hello world");str.erase (pos,len);str1.replace (pos,len,args);str.find ("hello world");//在str中查找"wo" 第一次出现的位置的下标。str.rfind ("hello world"); //在str中查找"w

2015-08-05 09:53:56 373

原创 2015华为机试-循环报数

其中有一个测试案例没有通过,testcase3有可能是边界输入问题,虽然已经判断但是没有考虑到题目中的情况,欢迎各位提出问题#includeusing namespace std;#includetypedef struct Node{ char data; Node*next;}List;int main(){ int m; int count=0; string

2015-08-01 12:56:30 745 5

原创 2015华为机试练习-超长正整数相加

#includeusing namespace std;#includeconst int N=65536;char*Addequal(char add1[],char add2[],int len1,int len2){ char *res=new char[len1]; int flag=0; for (int i=len1-1,j=0;i>=0;i--,j++) { i

2015-08-01 12:52:55 983

原创 2015华为机试练习【测试自动化6】城市电话号码

#include#includeusing namespace std;int main(){ string str2,str3; char*str1=new char[100]; gets(str1); int len1=strlen(str1); str1[len1]='\0'; if (len1==0||len1==3) { if (len1==3) {

2015-08-01 12:51:34 1068

原创 关于C++字符串读取

string str;cin>>str//遇到空格或者换行符结束,不是很好判断空的输入getline(cin,str)//读取整行,遇到换行符结束,不是很好判断空输入char *P=new char[100];gets(p)遇到换行符结束,可以判断空的输入,长度为0

2015-08-01 12:48:41 419

原创 2015华为校招机试-取石子游戏

/*1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出2.先取者胜输出1.找出规律,斐波拉契数列*/#includeusing namespace std;const int N=65536;int main(){ int num; cin>>num; int a[N]={0}; a[0]=

2015-07-25 17:22:18 1343 4

原创 2015华为校招模拟题-判断一个数字中是否包含两个相同的子串

/*判断给定的一个数字,把它当成字符串以后,该字符串中是否包含相同的两个子串,子串的长度要求大于等于2。比如:12123,该数字包含两个“12”子串;又比如:1223122,该数字包含两个“122”子串。*/#include#includeusing namespace std;int main(){ string str; cin>>str; int flag=0; in

2015-07-25 17:17:40 1364 2

原创 2015华为校招模拟题-最小长方形

/*给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内。长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内。*/#include#include#includeusing namespace std;int xy(vector&vx,vector&vy){ if ((vx.size()==1&&vy.size()==1)|

2015-07-25 17:15:36 1122 8

原创 PL/SQL基础(四)

PL\SQL中判断与循环declare tmpsal emp.sal%type;begin select sal into tmpsal from emp where empno=4321; if(tmpsal<320) then dbms_output.put_line('less'); elseif(tmpsal<400) then dbms_ou

2015-07-15 17:14:15 287

原创 PL\SQL基础(三)

PL/SQL中sql语句declare tmpname emp.ename%type; tmpsal emp.sal%type;begin select ename,sal into tmpname,tmpsal from emp where empno=8321; dbms_output.put_line(tmpname||' '||tmpsal);end;或者

2015-07-15 17:02:36 302

原创 PL/SQL基础(二)

变量声明declare name varchar2(10);//声明变量begin name:=‘Tom’;对变量赋值,注意赋值方法 dbms_output.put_line(name); end;关于type属性,为了简便保持与字段的一致而使用declre empno number(4); emp1 emp.empno%type;..

2015-07-14 17:19:42 315

原创 PL/SQL基础(一)

PL/SQL实现复杂的应用逻辑时,需要数据库提供过程化的编程支持,将它们一起发向服务器,减少网络传输,提高程序运行效率. 具有良好的可移植性. 基本组成部分: declare 说明部分; begin 执行部分; exception 异常部分 end;begin dbms_output.put_line('hello world'); en

2015-07-14 16:57:11 279

原创 strcpy与memcpy重新实现

#include#includeusing namespace std;//此版本并未考虑到内存重叠的情况char* strcpy_overwrite1(char*Des,char*Src){ assert(Des!=NULL); assert(Src!=NULL); //assert的作用是现计算表达式 expression //如果其值为假(即为0),那么它先向stderr

2015-07-14 11:44:41 268

原创 汉诺塔的简单实现

一直认为很简单的递归经典算法,感觉有时转不过来,特意写了一个#includeusing namespace std;void move(int n,char from,char to){ cout<<n<<" from "<<from<<" to "<<to<<endl;}void Hanno(int n,char f,char temp,char t)//从什么到什么,剩下的就是中间

2015-07-07 16:49:39 381

原创 C++中的重载

平时不怎么写重载,有时候会短路记不得,特意写一个方便以后看#include using namespace std;class F{ int m; int d;public: F(int m=0, int d=1):m(m),d(d){} int getn()const{return m;} int getd()const{return d;} friend istream&

2015-04-22 19:50:53 273

原创 给定一个数组,求数组中所有元素的可能组合(每个元素只出现一次),使其和等于给定数的解决办法

主要使用了暴力匹配的方法:#include#includeusing namespace std;int main(){ int val; int count=0; int i=0; int flag[50]; int sum; cin>>sum; multimapmi; while (cin>>val) { count++; mi.insert(make_p

2015-04-18 21:11:01 1063

原创 华为机试地铁换乘C++实现(不容易啊)

描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A

2015-04-17 16:32:05 1824

转载 最大子矩阵面积

http://blog.csdn.net/sunmenggmail/article/details/7709004#includeusing namespace std;int f[2001][2001];int h[2001],l[2001],r[2001];int n,i,j;int main(){ cin>>n; int w; for(i=1;i<=n;i++)

2015-04-16 20:53:16 1033

原创 图的割点与割边实现

基本思路:假如我们在dfs时访问到了u点,此时图就会被u点分割成为两部分。一部分是已经被访问过的点,另一部分是没有被访问过的点。如果u点是割点,那么剩下的没有被访问过的点中至少有一个点在不经过u点的情况下,是无论如何再也回不到已经访问过的点了。假如到了u后,图中还有顶点v是没有访问过的点,如何判断v在不经过u的情况下是否还能回到之前访问过的任意一个点?u是v的父亲,而之前访问过的顶点就是祖先。

2015-04-16 19:15:11 547

原创 最小生成树之Prim算法C++实现

Prim算法的基本思路:将图中的所有的顶点分为两类:树顶点(已经被选入生成树的顶点)和非树顶点(还未被选入生成树的顶点)。首先选择任意一个顶点加入生成树,接下来要找出一条边添加到生成树,这需要枚举每一个树顶点到每一个非树顶点所有的边,然后找到最短边加入到生成树。依次,重复操作n-1次,直到将所有顶点都加入生成树中。#includeusing namespace std;i

2015-04-16 14:38:05 9147 5

原创 C++基础知识点遗忘二字符与树的遍历节点判断

1.关于转义字符   char a='\72'  并不会报错 7代表的是八进制 \o72 代表冒号:      如果是\92就会出错 十进制2.前序和中序遍历,如何求后序遍历呢?比如,已知一棵树的前序遍历是”GDAFEMHZ”,而中序遍历是”ADEFGHMZ”应该如何求后续遍历?第一步,root最简单,前序遍历的第一节点G就是root。第二步,观察前序遍历GDAFEMHZ,

2015-04-16 10:38:46 376

原创 C++产生的临时对象引用

统自动生成的临时对象都是const的#include using namespace std;class A {};class B{ public: B(){} B(A& a){}};class B1: public B{ public: B1(const B& b) : B(b) {}};int main(){

2015-04-16 10:15:30 732

原创 C++虚函数重载

#include #include #include uing namespace std;#define str(f) void printLine(string s){ cout<<s<<endl; } class A { public: virtual void vfun(int) { printLine(str(vfun in A));

2015-04-16 09:56:24 789

原创 C++笔试的基础遗忘点

1.不可以重载的操作符:" ::",“.*“,".",“?:”2.

2015-04-16 09:37:48 248

原创 最小生成树Kruskal算法实现+快排实现权值排序

要求要最少的边让图连通(任意两点之间可以互相到达)。要想让n个顶点的图连通,那么至少需要n-1条边。其实这里就是求一个图的最小生成树基本思路:首先按照边的权值进行排序按照升序,每次从剩余的边中选择权值较小且边的两个顶点不在同一个集合内的边(将所有的顶点放入一个并查集中,判断两个顶点是否连通,只需判断两个顶点是否在同一个集合中,即是否有共同的祖先,这样时间复杂度为O(logN))(就是不会产

2015-04-15 20:39:57 1353

原创 迷宫BFS实现

#includeusing namespace std;struct note{ int x; int y; int f; int count;};int main(){ struct note que[2501]; int num[51][51]={0},flag[51][51]={0}; int diretion[4][2]={{0,1},{1,0},{0,-1},{

2015-04-15 14:22:00 284

原创 奥数等式与走迷宫Dfs实现

深度优先搜索(Depth First Search,DFS),理解深搜的关键在于解决“当下该如何做”。至于“下一步如何做”。通常的方法就是把每一种可能都是尝试一遍。当前这一步解决后便进入下一步。下一步的解决方法和当前这步的解决方法是完全一样的。深搜的基本模型:void dfs(int step) { 边界判断 尝试每一种可能 for(i=1;i<=n;i++)

2015-04-15 11:14:21 539

原创 奥数等式:暴力穷举法

奥数等式:暴力穷举法abc+def=hig 将数字1~9分别填入,每个数字只能使用一次使得等式成立。例如784+152=936就是一个合理的组合,请问一共有多少种合理的组合?注意784+152=936和152+784=459是同一种组合。根据枚举思想我们只需要枚举每一位上所有可能的数就好了。用一个flag数组来标记解决互不相等的问题。#includeusing namespa

2015-04-15 10:17:52 750

原创 图的遍历之BFS广度优先遍历C++实现

首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问他们相邻的未被访问过的顶点,直到所有顶点都被访问过,遍历结束。广度优先遍历更加适用于所有边的权值相同的情况#include#includeusing namespace std;int main(){ int points,edgs; cin>>points>>edgs; i

2015-04-14 22:01:59 2883

原创 图的遍历之-DFS深度优先遍历C++实现

深度优先遍历的思想:沿着图的某一个分支遍历直到末端,然后回溯,再沿着另一条进行同样的遍历,直到所有的顶点都被访问过为止:首先以一个未被访问过的顶点作为起始顶点,沿着当前顶点的边走未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探访问别的顶点,直到所有的顶点都被访问过。求出上图各个顶点到各个顶点的路径#includeusing namespace std;

2015-04-14 20:27:39 2663

原创 最短路径比较

FloydDijkstraBellman-Ford队列优化的Bell.空间复杂度O(N^2)O(M)O(M)O(M)时间复杂度O(N^3)O((M+N)logN)O(NM)最坏也是O(NM适用情况

2015-04-14 13:00:50 282

matcom使用方法

主要有matcom与VC的混合编译方法,并且有详细的教程说明

2014-02-18

空空如也

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

TA关注的人

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