自定义博客皮肤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)
  • 资源 (6)
  • 收藏
  • 关注

原创 原型模式

《大话设计模式》原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新饿对象下面的例子是通过一个对象re来进行拷贝,但是指向的都是同一个对象的引用,改变克隆后的属性,原来的原型属性也改变,所以是浅复制,后面再实现一个深度复制  //examination.h#ifndef _EXAMINATION_H_#define _EXAMINATION_H_#in

2012-06-28 20:28:41 427

原创 简单工厂模式vs工厂方法模式

简单工厂要添加新类时,得在工厂类里面修改,添加判断生成新类的条件,这样破坏了开放-封闭的原则,内部改动,但是好处是,判断选择生成哪种类的对象交给了简单工程,而不是客户端这里而工厂方法模式改良了简单工厂模式,每种类对象对应了一个生成该类对象的工厂类,当添加新类时,只要写个新类,再写个生成这个新类对象的工厂类,不需改内部代码,满足开放-封闭原则,缺点是生成什么类型的对象就得选用什么类型的工厂,这个

2012-06-28 01:53:25 651

原创 代理模式

代理模式,为其他对象提供一种代理以控制找个对象 //person.h#ifndef _PERSON_H_#define _PERSON_H_#include using namespace std;class SchoolGirl{ public: string GetName() {

2012-06-28 01:09:25 493

原创 装饰器模式

《大话设计模式》装饰器模式:为已有功能动态地添加更多功能,当系统需要新功能,向旧的类中添加新功能,装饰了原有类的核心职责和行为,而不改变它们就像包装袋一样,有新款的包装袋包装之前装好东西的包装袋//clothes.h#ifndef _CLOTHES_H_#define _CLOTHES_H_#include using namespace std;cla

2012-06-26 20:20:51 432

原创 策略模式 + 简单工厂模式

《大话设计模式》实现代码//cash.h#ifndef _CASH_H_#define _CASH_H_#include using namespace std;class CashSuper{ public: CashSuper() {} virtual ~CashSuper() {} virtu

2012-06-26 02:19:33 635

原创 poj 1679 求最小生成树的值是否唯一

题目大意:求最小生成树的值是否唯一,唯一输出这个值,不唯一则输出Not Unique!解题思路:先求出最小生成树,保存最小生成树的路径,然后按边的大小由小到大枚举每条没有加入最小生成树的边比如是(u,v),在已经形成的最小生成树种,取u到v路径上最大的边的权值,比较(u,v)的这个最大权值的大小,如果相等,说明最小生成树不唯一,如果不相等,说明唯一。 #include #inclu

2012-06-25 02:03:49 627

原创 简单工厂模式

http://blog.csdn.net/tianshuai11/article/details/7671097根据《大话设计模式》里的例子编写的//simpleFactory.cpp#include #include #include "operation.h"using namespace std;int main(){ double numA, num

2012-06-25 01:14:05 604

原创 poj 2299 求逆序对

题目大意:求逆序对解题思路:分治法,类似于归并排序。A[1.....n],将原问题划分为2个子问题A[1...n/2], A[n/2+1....n],并且两个子数组已经排好序了,1..n/2的逆序对已经求好,n/2+1...n的逆序对也已经求好了所以求两个子问题之间的逆序对,在归并排序的过程中,当A[i]  特别注意当j已经扫描完时,逆序对要加 j - n / 2 - 1#in

2012-06-24 01:46:37 1898 1

转载 ural 1297 最长回文子串

参考:基本是看他的http://bbezxcy.iteye.com/blog/1418354参考论文《后缀数组--处理字符串的有力工具》题目大意:要你求出一个字符串的最长回文子串解题思路:常规方法是枚举每个字符,每个字符两边扩展,比如第i个字符,分奇偶两种str[m] .... str[i] ..... str[n] m到i的字符串与n到i的字符串匹配str[m]......s

2012-06-23 20:58:58 672

转载 spoj 694 不相同的子串的个数

转自:《后缀数组---处理字符串的有力工具》题目大意:要求求一个字符串中不同子串的个数解题思路:利用后缀数组,每个子串一定是某个后缀子串的前缀,求多少个不同的子串等价于求出所有后缀之间的不相同的前缀的个数。设字符串为str,sa[i]表示排名第i的后缀从str的第sa[i]个位置开始,rank[i]表示str[i]开始的后缀排第几位height[i]表示sa[i]和sa[i-1]的

2012-06-20 01:20:04 1981

原创 算法导论 15-4 数形DP poj 2342

这个道题跟poj  2342上的一样。题目大意:就是一个树,树的每个结点有个值,选了某个结点,就不能选择它的父结点,求整棵树选的节点值最大是多少。解题思路:简单的树形DPdp[i][0]表示不选i结点时,i子树的最大价值dp[i][1]表示选i结点时,i子树的最大价值那么列出状态方程dp[i][0] = sum(max(dp[u][0], dp[u][1])) u 为结点i

2012-06-18 22:47:50 1347

转载 poj 1050 求矩阵的子矩阵的元素和最大

题目大意:求矩阵的子矩阵的元素和最大解题思路:《编程之美》上的,把二维空间的转换为一维的,编程求一维数组子序列和的最大值确定矩阵行的上下界,一旦确定了行的上下界,这个每列在这个上下界区间的元素和就可以看做是一维数组的单个元素。枚举上下界,求最大值#include #include #include #include using namespace std;con

2012-06-18 02:38:04 803

原创 poj 2479 求两段子数组和相加的最大值

题目大意:给出一组数字序列,要你求出两段子数组和两者相加的最大值解题思路:求出1~i的序列的子数组和的最大值,i~n的序列的子数组和的最大值然后枚举k, 1关于求数组连续的子数组最大和,《编程之美》上有O(n)的求法。求法如下: 考虑元素a[k], 以及最大的一段数组a[i]~~a[j] 1.当k = i = j时,元素a[k]本身构成了和的最大一段。2.当k=i

2012-06-18 01:56:52 1657

原创 hdoj 1427 24点游戏

题目大意:给一组数,问这组数通过加减乘除4则运算结果是否为24解题思路:《编程之美》上面的解法~~每次选取两个数做加减乘除,比如(a,b,c,d)选a,b两个数做加法,那么形成了(a+b,c,d)然后继续递归,其他的四则运算一样,加法和乘法满足交换律。方法一:171MS460K2372 B#include #include #incl

2012-06-17 02:10:25 751

转载 poj 3261 求可重叠k次最长重复子串

选自《后缀数组--处理字符串的有力工具》题目大意:给出字符串长度n,还有可重复子串至少出现k次。求这个重复子串的最长长度。解题思路:和poj1743差不多,不同的是二分时,判断一个组的后缀子串个数是否小于k#include #include #include #include using namespace std;const int maxn = 20010;

2012-06-14 03:08:51 1099

转载 poj 1743 求不可重叠最长字符串

http://hi.baidu.com/blackstar08/blog/item/6909b391bb308a83a977a429.html题目大意:给定一段音乐乐谱,其中的音符用数字表示出来( 范围 [ 1,88 ] ),要求的是这段乐谱的主旋律。所谓的主旋律,就是满足以下三点要求的一段子串:1、音符的数目至少为5;2、重复出现在乐谱中的另一个地方;3、不相互重叠;

2012-06-14 02:23:16 715

原创 poj 3356 求最短编辑距离

题目大意:给定两个字符串x,y,要你求出x经过插入,删除,替换变成y所要的最少操作,即编辑距离。解题思路:动态规划,列出状态方程,设dp[i][j]表示字符串x[1...i]和字符串y[1...j]的最短编辑距离当x[i] == y[j]时,i和j不需要编辑,要么删除,要么插入,要么替换dp[i][j] = min(dp[i-1][j-1], dp[i-1][j] + 1, dp[i]

2012-06-08 07:58:37 1982

转载 算法导论 15-2 整齐打印

看了这个人写的解题思路状态转移方程,这里只是用代码实现了下http://blog.csdn.net/wenlei_zhouwl/article/details/5992367问题: 考虑在一个打印机上整齐地打印一段文章的问题。输入的正文是n个长度分别为L1、L2、……、Ln(以字符个数度量)的单词构成的序列。我们希望将这个段落在一些行上整齐地打印出来,每行至多M个字符。“整齐度”的标准如下

2012-06-06 21:07:32 4581 6

转载 poj 2677 双调欧几里得旅行商问题

这里http://blog.sina.com.cn/s/blog_51cea4040100gkcq.html解释的很详细了。题目大意:这是算法导论动态规划的思考题15-1,求从坐标的的最左端的点走到最右端的点,每次走到下一个点只能选在当前点的右边的点,到达最右点后又从最右点返回到最左点,返回时只能选当前点的左边的点,且不能跟之前走的点重合。解题思路:动态规划,可以认为两个人在同时往右走,且

2012-06-06 07:54:29 3210

[现代编译原理C语言描述

《现代编译原理:C语言描述》全面讲述了现代编译器的各个组成部分,包括词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、ssA(静态单赋值)形式、循环调度、存储结构优化等,适合于后续课程或研究生教学。书中专门为学生提供了一个用C语言编写的实习项目,包括前端和后端设计,学生可以在一学期内创建一个功能完整的编译器。

2012-08-13

UNIX环境高级编程第二版.

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。 这本书不仅适于unix,对于linux程序设计的人员同样适用,关于linux编程方面工作的人员都会使用这本书

2011-12-02

J2EE开发技术手册

一本介绍j2ee开发的好资源 J2EE开发技术手册J2EE开发技术手册J2EE开发技术手册

2009-07-01

jstl核心编程JSTL核心编程

jstl核心编程,由浅入深分章介绍 JSTL核心编程JSTL核心编程JSTL核心编程JSTL核心编程

2009-07-01

html中文手册.chm

通过章节介绍html脚本,由浅入深 html中文手册

2009-07-01

Spring入门书籍

spring入门,非常实用,适合初学者学习spring技术

2009-06-09

空空如也

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

TA关注的人

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