自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

野生码农

方法大于努力

  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

转载 创建型模式-单件(Singleton)

转自:http://blog.vckbase.com/arong/archive/2004/05/25/280.html注意:我的文章一般都是倾向于原理性介绍,内含代码可能存在错漏,也绝对不是大家可以拿来就用的标准代码。模式设计重要在于思想,而不在于如何实现。<br />考虑“创建型模式-工厂方法(Factory method)”中,我们对于每种虚构造器对象,我们都只需要一个实例。类似的情况还在许多地方出现,概括起来就是:某种类型,只需要也只能被实例化一次,这种只能有单一实例的类型称为一个单件类,或者说这种

2010-09-30 23:37:00 1171

原创 平衡二叉树

<br />#include <stdio.h> #include <stdlib.h> struct BTreeNode { int val; int depth; BTreeNode *left,*right; }; void ComputeDepth(BTreeNode *root) { //计算左右子树的最大深度 int depth; if(root->left) depth = root->left->depth; else depth

2010-09-24 01:46:00 706

原创 层次结构打印二叉树

<br />#include <stdio.h> #include <stdlib.h> struct TreeNode { int val; TreeNode *left,*right; }; //左子树的节点小于等于根节点,右子树的节点大于等于根节点 TreeNode* InsertTree(TreeNode *root,int val) { TreeNode *node; if(NULL == root) { node = (TreeNode *)m

2010-09-23 23:08:00 1505

原创 窗口之间发送消息

.386 .model flat,stdcall option casemap:none include windows.inc include gdi32.inc includelib gdi32.lib include user32.inc includelib user32.lib include

2010-09-22 21:51:00 1040

原创 VC中嵌入汇编

<br />#include <stdio.h> void __stdcall TranslateBuffer(char *buf,unsigned count,unsigned char eChar) { __asm{ pushad mov esi,buf mov ecx,count mov al,eChar L1: xor [esi],al inc esi loop L1 popad } //asm } int m

2010-09-21 20:54:00 1301

转载 文件文件与二进制文件

<br /> 文本文件与二进制文件<br /> 一、文本文件与二进制文件的定义<br />    大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。<br />    简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。<br />    从上面可以看出文本文件基本上是定长编码的

2010-09-20 12:46:00 843

原创 C语言基础1

<br />#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { /* printf(格式化输出): %[标志][输出最小宽度][.精度][长度]格式字符串 标志 含义 - 左对齐,右边填空格 + 输出符号(正好或者负号) 空格 值为正,冠以空格;为负,冠以负号 # 输出八进制十六进制的时候加前缀 scanf(格式化输入): 格式化说明符与printf()中的格式说明符基本相同

2010-09-20 12:32:00 623

原创 快速排序算法

<br />/*快速排序基本思想: 将待排序记录分割成两部分,其中一部分记录的关键字都不大于另外一部分记录的关键字, 然后再递归的对这两部分进行快速排序. */ #include<iostream> using namespace std; void swap(int &a,int &b) { int c = a; a = b; b = c; } int Partition(int L[],int low,int high) { //快速排序是一种

2010-09-18 22:40:00 695

原创 涡流系统测试之读文件画图模块

<br />#include <afxwin.h> #include <cstdio> #include <process.h> #define MAX 300 struct tag_point { short int x; short int y; }; tag_point points[MAX]; tag_point prev_points[MAX]; class CWindow : public CFrameWnd { public: CWindow()

2010-09-13 22:54:00 791

原创 pku 2263

<br /> <br />http://acm.pku.edu.cn/JudgeOnline/problem?id=2263<br /> <br />hash + dijkstra<br />第一次用hash,据说某某学长在面试的时候写了个楼天成的hash函数,面试官二话不说,直接拉人~~<br />#include <cstdlib> #include <iostream> using namespace std; const int N =202; const int inf = 0x3

2010-09-12 18:01:00 805

原创 hrbeu 1229 网络热身赛的一道DP Sum Of SubRectangular Parallelepiped(数字长方体)

好辛苦啊...热身赛的时候看错题目,没做出来..今天实训逃回来,一个下午,WA了31次!。。。#include using namespace std; /* [y1y2y3..yn] 对于一维来说:y就是该列的值 对于二维来说:y是一个可变长度的向量 对于三维来说:y是一个面 如果所有的情况都在一个数组里进行DP的话,那么本题需要开个5维数组... 5维的话是5次方,很明显是不可能的事情. 所以本体的策略是时间换空间. 由于数组不能开大,那么只能是每次计算一个矩形后,对使用的数组

2010-09-10 18:19:00 746

原创 pku 1321 棋盘覆盖问题

<br />准时在11点AC!!hah <br /> <br />#include<iostream> char map[9][9]; bool flag[9][9]; int num,n,k; bool place(int r,int c) { if (map[r][c] != '#') { return false; } for(int i = 1; i <= n; i++) { if(flag[r][i] || flag[i][c]) retu

2010-09-07 23:01:00 760

原创 pku 3009 外星人的冰球游戏~~~回溯法

<br />实训第二天,没午睡,看VC,学MFC框架,敲代码..累啊.上回来不能休息,还要看算法。。。。撑着.<br />状态不这么好,丢三落四的,本来比较简单的一道,WA了好多次.<br /> <br />#include <stdio.h> int w,h; #define MAX_N 300 int map[MAX_N][MAX_N]; int sr,sc; bool inside(int r,int c){ return (r >= 1 && r <= h && c >=

2010-09-07 21:23:00 784

原创 超级迷宫 pku 3083 dfs+bfs 非常有意思的一道

<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=3083<br /> <br />神哪!!!昨天下午4点开始写 写到早上1.30...中间是第一次用Dev C++,有点系统小bug,搞了2小时.心灰意冷..结果写了9个小时还没写出来...今天去实训,回来后整理了下思路,找对了策略!对于左右手策略是这样的:如果左边(右边)有路左转(右转),否则向前,要是还不行,顺时针(逆时针)选择方向.因为设计了递归函数,所以理解起来很清晰~~但是当时怎么就没想到呢...

2010-09-06 20:03:00 1189

原创 递归与数学归纳法

<br />    递归是程序设计中常用到的一种简单易懂的方法,在很多场合下,利用递归可以大量减少代码量。<br /><br />    递归往往能体现设计者头脑的聪慧,简单的递归函数省去了大段大段的代码,让人叹服不已。那么,递归的设计又有怎样的固定思路呢?本文将介绍递归与数学归纳法之间的联系,希望给读者一些启迪。<br /><br />    数学归纳法是数学中重要的一种证明方法。当证明一个数学定理时,采用数学归纳法的思路是,先证明对于简单的可以代入的数,定理成立;再在假设定理对某一数N成立的前提下,证明

2010-09-04 23:25:00 5865

原创 分支界限法 图的搜索 布线问题

<br />/****************** *布线问题.从开始位置走到结束位置.中间有封锁区域,不得进入.只能走直线或垂直线绕过 *分支界限法: *其解空间是一个图. *从起始位置s开始将其作为第一个扩展结点,与该扩展结点相邻并且可达的方格成为可行点被加入到活结点队列中,并且在图上对其标记为路径长度 *接着从活结点列表中取出队首结点作为下一个扩展结点,照上...直到搜索到f方格或者队列为空时结束. */ #include <stdio.h> #include <string.h>

2010-09-04 16:57:00 1528

原创 符号三角形

#include #define maxn 20 int n,half,count; int p[maxn][maxn]; long sum; //0-'-' 1-'+' //解向量:用n元组x[1:n]表示符号三角形的第一行 //可行性约束:当前符号三角形所包含的'+'与'-'均不超过n*(n+1)/4 //无解的判断:n(n+1)/2为奇数 void backtrack(int t){ //搜索第t层子树,处理第一行第t个位置 if(count > half || (

2010-09-03 13:23:00 805

原创 回溯法总结

<br />//递归方法实现回溯法 void backtrack(int t){ //搜索解空间树第t层子树 //搜索到叶子节点 if(t > n) output(x); else //f(n,t)--当前扩展节点处未搜索过的子树的起始编号 //g(n,t)--当前扩展节点处为搜索过的子树的终止编号 for(int i = f(n,t);i <= g(n,t);i++){ //h(i)在当前扩展节点处x[t]的第i个可选值 x[t] = h(i);

2010-09-03 11:02:00 1104

原创 pku 1797 Heavy Transportation 分支界限法

<br />题目<br />http://acm.pku.edu.cn/JudgeOnline/problem?id=1797<br /> <br />分支界限法,学好了很强大.ps,第一次用优先队列...<br /> <br />#include <stdio.h> #include <queue> using namespace std; #define max 1001 #define MIN(x,y)(x < y ? x : y) int map[max][max]; int d

2010-09-01 19:40:00 856

编程精粹,写出高健壮性的代码

编程精粹,微软,金山,代码的健壮性。从业余爱好者到专业人员的转变.

2011-03-19

操作系统先来先服务调度和段进程优先调度

操作系统的上机实验,自己写的,很有参考价值,你们多下载下载,我多积攒点分数...

2010-05-17

空空如也

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

TA关注的人

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