04 2013 档案
摘要:This is a part of the code in my project "human detection from picture"File "integral_histogram.h"View Code 1 ////////////////////////////////////////////////////////////////////////////////////////////////// 2 // Author: Zhangpeng Tang 3 // Version: 0.1 4 // Date: 2012.03.10...
阅读全文
摘要:题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1025如果我们定义在一个sticks序列中,对所有的 j>i 均满足 : sticks[i].l>=sticks[j].l 且sticks[i].w>=sticks[j].w ,则称这个序列为一个 “簇”。本题就是求把所有的元素分为最少的簇数。假设输入为A,首先把A排序(按 l 的增序,若两个元素的 l 相同,则按 w 的增序),排序后的序列称为B,对序列B按照元素的属性 w 求最长递减子序列的长度(严格递减),记为len。则我们要求得最少簇数
阅读全文
摘要:问题描述:给定某一组无序的数,求其中最长的单调序列的长度(该单调序列不一定是连续的),如在 5 6 1 2 4 7 5 中最长上升增序列是1 2 4 7 或者1 2 4 5。该题可以用动态规划的方法解决,时间复杂度为O(n^2):设A[t]表示序列中的第t个数,F[t]表示从1到t这一段中以t结尾的...
阅读全文
摘要:有时候我们在coding的过程中经常需要知道某个变量所能表示的最大或者最小值,在程序设计的基础课上老师肯定也都讲过,只是那么多的数值没办法都记住,下面是我的一些经验,这些也是一个程序员应该掌握的基本知识。下面只以int类型举例,默认 int 32位。首先要明白的是,整数采用的是补码表示方法,忘了补码概念的可以参考http://baike.baidu.com/view/377340.htm。对于有符号整数,最高位是符号位,1表示负数,0表示正数。+0和-0的补码均为:所有位全部置0。int 的最大值二进制表示为:01111111 11111111 11111111 11111111 即2^31.
阅读全文
摘要:题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1074这道题的dP是基于 “最大子段和” 的dp方法例如求数组 1 2 -3 4;-5 6 -1 8 的最大子矩阵和,可以把两行相加得到数组-4 8 -4 12,对这个数组求最大子段和为8+-4+12=16,所以矩阵对应的最大子矩阵为2 -3 4;6 -1 8那么可以利用以上思想,对于m*n的矩阵A,选取他的第 i 行到第 j 行的数据组成子矩阵Aij (j-i+1行n列),Aij 对应的最大子段和可以如下求得:对每一列的值进行累加得到一个一维数组(1*n),对
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1027设f[i][j]为基因1的前 i 个核苷酸与基因2的前 j 个核苷酸匹配所得的最高分数。则 f[i][j]= max { f[i-1][j-1]+ score[i][j], //基因1的前 i-1 个核苷酸与基因2的前 j-1 个核苷酸匹配,score[i][j]为核苷酸 i 与核苷酸 j 匹配的得分 f[i-1][j] + score[i][], //基因1的前 i-1 个核苷酸与基因2的...
阅读全文
摘要:在STL里有这个priority_queue,实现优先队列的结构。在优先队列中,优先级高的元素先出队列。现在在这里说说用法吧先看看语法:Syntax:In their implementation in the C++ Standard Template Library, priority queues take three template parameters:12 template < class T, class Container = vector<T>,class Compare = less<typename Container::value_type&g
阅读全文
摘要:标准模板库(The Standard Template Library, STL)定义了五种迭代器。下面的图表画出了这几种:inputoutput//forward|bidirectional|random access要注意,上面这图表并不是表明它们之间的继承关系:而只是描述了迭代器的种类和接口。处于图表下层的迭代器都是相对于处于图表上层迭代器的扩张集。例如:forward迭代器不但拥有input和output迭代器的所有功能,还拥有更多的功能。各个迭代器的功能如下:迭代器类别说明输入从容器中读取元素。输入迭代器只能一次读入一个元素向前移动,输入迭代器只支持一遍算法,同一个输入迭代器不能两遍
阅读全文
摘要:【一】http://blog.sina.com.cn/s/blog_58a84dcc01000bf6.html【二】http://blog.sina.com.cn/s/blog_58a84dcc01000bfa.html【三】http://blog.sina.com.cn/s/blog_58a84dcc01000bf7.html【四】http://blog.sina.com.cn/s/blog_58a84dcc01000bf9.html【五】http://blog.sina.com.cn/s/blog_7ffbb788010109zf.htmlShift/reduceconflictinYac
阅读全文
摘要:简介:Lex 和 Yacc 是 UNIX 两个非常重要的、功能强大的工具。事实上,如果你熟练掌握 Lex 和 Yacc 的话,它们的强大功能使创建 FORTRAN 和 C 的编译器如同儿戏。Ashish Bansal 为您详细的讨论了编写自己的语言和编译器所用到的这两种工具,包括常规表达式、声明、匹配模式、变量、Yacc 语法和解析器代码。最后解释了怎样把 Lex 和 Yacc 结合起来。Lex 代表 Lexical Analyzar。Yacc 代表 Yet Another Compiler Compiler。让我们从 Lex 开始吧。LexLex 是一种生成扫描器的工具。扫描器是一种识别文本
阅读全文
摘要:1 STL提供的Sort 算法C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点。STL 排序算法同样需要保持高效。因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同。1.1所有sort算法介绍所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是随机迭代器(RadomAccessIterator), 也就是说可以随机访问的迭代器,如:it+n什么的。(partition 和stable_partition 除外)如果你需要自己定义比较函数,你可以把你定义好的仿函数(fun
阅读全文
摘要:该文是以office2010为例有时候某些word文档中有大家想要的图片,但是如果复制-粘贴的话只是获得了word中已经压缩了的图片(粘贴保存后的图片为你在窗口中看到的大小和分辨率),但是制作该文档的作者可能是插入了一幅高清的图片,那么我们怎么获取这个原始图片呢,本文介绍了一个简单的方法。原始word文件为:新建 Microsoft Word 文档.docx修改其后缀名为rar: 新建 Microsoft Word 文档.rar双击该压缩文件后可以看到里面有个word文件夹,双击进去有一个media文件夹,里面包含该word文档中插入的所有的原始图片和视频等媒体文件。
阅读全文
摘要:一、ADO简介ADO(ActiveXDataObject)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术,请不必为此担心,即使你对OLEDB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并给出示例代码。二、ADO三个基本接口1、_ConnectionPtr接口该接口返回一个记录集或一个空指针。通常用它来创建一个数据库连接,或执行一条不返回任何结果的SQL语句,如一个存储过程。不推荐使用_Connecti
阅读全文
摘要:面向TCP连接的socket通信程序:服务端:创建套接字,指定协议族(sockaddr_in),绑定,监听(listen),接受链接(accept),发送或接收数据;客户端:创建套接字,指定协议族,连接,发送或接收数据这几个步骤都是必须的。补充:在发送和接受数据时:write/send/sendto,read/recv/recvfrom都可以用,通常会用:send,recv;但需要注意的是:在面向UDP的socket程序中,发送数据时,如果用sendto的话,就不用connect了;但是,在面向TCP的程序中,在发送数据时,即使sendto,也必须connect,也就是说connect这一步是
阅读全文
摘要:在Visual Studio 2008以及以后版本中,微软停止了非托管C++的直接WebService引用。不过ATL Server代码已经托管到开源网站上,我们可以找到ATL Server的源代码,编译出Sproxy.exe,这个工具可以根据wsdl文件来生成非托管的代理类。这个代理类还需要配合一些头文件才能一起使用,这个相关的头文件都包含在ATL Server 的源代码内。1. 第一步需要使用sproxy.exe工具来生成代理类。在vs2008以前的版本,比如vs2005,本身就带有这个命令,但在vs2008版,已经把它给去除了。需要去http://atlserver.codeplex.c
阅读全文
摘要:最近写了个天气预报的小程序,基于c/s模式,client向server发送请求,server定时向所有client发送天气更新,两者之间采用无连接的udp通信。以前几乎没有碰过socket网络编程,我也是边学边做的,下面是我在此过程中遇到的一些问题,希望给刚开始接触网络编程的朋友一些借鉴作用,少走弯路。主要用到两个函数recvfrom,原型如下:函数原型:int recvfrom(int sockfd,void *buf,int len,unsigned int flags, struct sockaddr *from,int *fromlen);sendto,原型如下:int SendTo(
阅读全文
摘要:最近在百度知道看到很多提问是关于RT的一些提问,下面是我在学习的过程中的一些总结,当然大虾可以忽视的,只是给初学者一些参考。一 二维数组动态申请空间假设我们要申请一个m行n列的整形数组,m、n的值可以在程序中动态改变1 使用malloc和free:int **buf;//申请buf =(int **)malloc(sizeof(int *)*m);for(int i=0;i<m;i++)buf[i]=(int *)malloc(sizeof(int)*n);//释放for(int i=0;i<m;i++)free(buf[i]);free(buf);2使用new和delete:in
阅读全文
摘要:一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){Sleep(6000); //延时6秒} 编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有必要学习——多线程编程。二、多线程概述 进程和线程都是操作系统的...
阅读全文
摘要:1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include <iostream.h>是可以的。但到了vs2005,使用了新的C++标准库,只能用#include <iostream>。4、名字空间里可以包含很多东西,比如函数名、标识符、数据类型等等。新的C++标准把标准库中的名字都放
阅读全文
摘要:C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的。API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的。区别他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C语言本身的。=================================================================================================·1、运行时库就是 C run-time library,是C而非C++语言世界的概念。取这个名字就是因为你的C
阅读全文
摘要:在visual c++ 2008 中,当选择编辑一个32位Win32控制台应用程序时。初始状态下系统自带函数: int _tmain(int argc, _TCHAR* argv[]) { return 0; }上述Win32控制台应用程序的入口程序是用来存放机器的一个环境变量的,如:机器名,系统信息等。其中:·int argc //参数个数·char *argv[] //字符串数组,字符串数组的每个单元是 char* 类型的,指向一个C风格字符串。·_TCHAR类型是宽字符型字符串,它是32位或者更高的操作系统中所使用的类型。出处: #include <i
阅读全文
摘要:推荐参考博客:秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别 CreateThread:Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程 beginthread beginthreadex:MS对C Runtime库的扩展SDK函数,...
阅读全文
摘要:(1) rand()函数:原型: int rand(void)功能: 产生从[0,RAND_MAX]之间的随机数,RAND_MAX为系统定义的宏, 32位机器上大小为32767。头文件: stdlib.h或者iostream(2)srand()函数:原型: void srand(unsigned seed)功能: 产生随机数的起始发生数据,和rand函数配合使用头文件: stdlib.h或者iostreamtime.h比如以当前时间作为起始发生数据:srand( (unsigned)time(0) );(3) randomize()函数:原型:void randomize(void)功能: 通
阅读全文
摘要:1 time()头文件:time.h函数原型:time_t time(time_t * timer)功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数(long),其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。举例://获取当前时间time_t nowtime;struct
阅读全文
摘要:PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::++--Grouping operatorArray accessMember access from a pointerMember access from an objectScoping operatorPost-incrementPost-decrement(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;Class::age = 2;for( i = 0; i 0; i-- ) ...left to r
阅读全文
摘要:首先要先说一下缓冲区的概念,c语言标准库的输入函数都是从缓冲区(stdin)读取数据,而不是直接从键盘(或者说键盘缓冲区)读取。回显地概念:输入时,输入的数据显示在控制台终端,无回显则不显示scanf()1、在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。 2、C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。3、scanf()的格式控制串可以使用空白字符或其它非空白字符,使用空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。scanf("%c%c%c
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1013采用动态规划解决。设f[n][x][y] 表示前n辆车装了x个装备1和y个装备2之后能装的最多的装备3的个数。递推关系如下:f[n][x][y] = max ( f[n - 1][x - a][y - b] + c); 其中f[0][x][y]=0其中a和b的范围为第n辆车可以装的装备1和装备2的个数, c 为第n辆车装完a个装备1和b个装备2后可以装的装备3的个数。通过递推求得f[n][x][y]后,可以遍历x和y(x,y的范围可以在上述递推的过程中得.
阅读全文