自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

he-honghua的专栏

恭喜你家发大水,水面钞票一大堆

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

原创 关于crontab的环境变量设置

用crontab定时起任务的时候,有时会遇到莫名奇妙的错误。明明手动执行某脚本,比如 sh test.sh时,可以正确运行。但是当你把它放到crontab里百,就会出错:比如找不到java啦,/bin/sh 不对啦, 等等。这就是由于环境变量引起的,这种情况出现时,只需要在你的脚本中,比如test.sh中加入以下两条语句即可:. /etc/profile. ~/.bash_pr

2013-12-13 14:22:00 1855

原创 std vector与std list的效率比较

一直想知道std中vector和list的效率哪个高些。于是做了一个简单的测试,对std vector和list的push_back与遍历操作的效率进行比较。结果如下:1. push_back操作:连续push_back操作100000个元素,然后clear()。一直重复10000次。vector耗时13s, list耗时118s2. 遍历操作:采用迭代器对

2013-01-22 14:41:27 6288 3

原创 c++获得本机ip地址

采用c语言获得本机的ip地址代码如下: 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 int main() 8 { 9 addrinfo *addr_info = NULL; 10 char hostName[100]; 11 char ip[3

2012-02-09 13:51:31 1223

原创 python的hello,world

<br />这两天看了一章《集体智慧编程》,书中的程序是用python写的,而我又想实现一下,于是提起了学习python语音的兴趣来。<br />首先,从网上下了python for windows安装,然后运行。<br />照例还是第一条语句:print "hello,world".<br />可是提示出错,应该是不能识别关键词,我可是照书抄的啊!这也能出错?<br />后来想了想,应该是python的版本问题,不同的版本,语法的不太一样。<br />上网一查,果然如此,更高的版本print语句已经是一个

2011-05-30 22:40:00 1348

转载 互联网行业预言

<br /><br />[转自谢文博客]:http://xiewen.blog.techweb.com.cn/archives/220<br />有机会和几个朋友一道与网络业最著名的杂志《连线》(WIRED)创始人和主编Kevin Kelly(业内人昵称KK)聊了一个下午,收益颇多。联想到国内互联网业的现状与未来,不禁想写下几句话来与朋友们分享。<br />KK在编杂志和在各个著名报刊发表文章之余,还写了若干部在网络业,IT业乃至科技界影响颇大的著作。他二十年前的成名作《失控》至今仍在畅销,中文版也刚刚出版

2010-12-13 15:05:00 1087

转载 [转]搜索引擎的终极使命--骆轶航

<br />导读:当搜索引擎洞悉人性、心理与社会,它会变成什么? 当你向互联网上传一个页面,来自世界各地的无数“蜘蛛”便会蜂拥而至。它们抓取并复制你的网页,跟踪着网页中的链接,悄悄地爬上更多的页面,用触角将它们纳入索引数据库。数据库像轰鸣的机器,拆解网页上的文字内容、标记关键词的位置、字体和颜色,并生成庞大的表格。这时,你输入一个单词,点击Google或百度上的“搜索”按钮,它会在0.2秒内得到响应,带着单词奔向索引数据库的每个神经末梢,检索到所有包含搜索词的网页,依据它们的浏览次数与关联性等一系列算法确定

2010-12-03 11:50:00 1089

转载 extern "c"用法

<br />extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字创意产品网 . 它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 1。对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误 2。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数或者变量与开放给外面,则在h文件中用extern加以声明。所以外部文件只用include该h文件就可以了

2010-10-18 15:59:00 871 1

原创 单调队列进阶

<br />题目地址 http://acm.hdu.edu.cn/showproblem.php?pid=3530<br />题目大意: 给定一个数列,长度n(1<=n<=100000), 值m和k, 求最长子序列,满足当中的最大值-最小值差不小于m且不大于k。 <br />与前面介绍的题目不太一样,这道题反过来了,没有规定窗长度,相反是要我们求要求条件的最大的窗。<br />道理还是一样,当窗长规定为l时,我们只需要保存i的前l-1个数当中的最大值和最小值,而要我们求窗长时,我们可以自己设定窗的开始位置s

2010-08-27 22:28:00 1508

转载 单调队列应用

原文地址:http://www.cppblog.com/baby-fly/archive/2010/08/04/122213.aspx?Pending=true#Post题目大意:给出一个有N个数字(-1000..1000,N<=10^5)的环状序列,让你求一个和最大的连续子序列。这个连续子序列的长度小于等于K。<br />分析:因为序列是环状的,所以可以在序列后面复制一段(或者复制前k个数字)。如果用s[i]来表示复制过后的序列的前i个数的和,那么任意一个子序列[i..j]的和就等于s[j]-s[i-1]

2010-08-27 21:11:00 1749

原创 单调队列初步

<br />一直弄不明白单调队列是什么,在网上也找不到易懂的介绍。最后结合别人博客上的介绍和程序看才理解是怎么回事。<br />我们从最简单的问题开始:<br />给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.<br />要求:<br />      f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1<br />问题的另一种描述就是用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值。<br />解法一:<br

2010-08-27 21:08:00 26281 6

转载 fork返回值

<br />本文来自CSDN博客http://blog.csdn.net/guichen83/archive/2009/05/08/4160697.aspx<br />fork简介:      <br />   fork英文原意是“分岔,分支”的意思,而在操作系统中,乃是著名的Unix(或类Unix,如Linux,Minix)中用于创建子进程的系统调用。 <br />【NOTE1】 <br />fork () 的作用是什么?换句话说,你用 fork () 的目的是什么? <br />――是为了产生一个新的进

2010-08-21 14:12:00 1143

转载 进程上下文与中断上下文

<br />处理器总处于以下状态中的一种:<br />1、内核态,运行于进程上下文,内核代表进程运行于内核空间。<br />2、内核态,运行于中断上下文,内核代表硬件运行于内核空间。<br />3、用户态,运行于用户空间。<br /><br />进程上下文:<br />在Linux中,用户程序装入系统形成一个进程的实质是系统为用户程序提供一个完整的运行环境。进程的运行环境是由它的程序代码和程序运行所需要的数据结构以及硬件环境组成的。进程的运行环境主要包括:<br />1.进程空间中的代码和数据、各种数据结构

2010-08-21 13:51:00 765

转载 进程和线程的区别

转自:http://www.cnblogs.com/engine1984/archive/2007/08/22/865562.html<br />进程概念 <br />  进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 <br />  在Mac、Wind

2010-08-21 11:56:00 1048

原创 信号量与管程

<br />1.信号量: <br />1)信号量的定义:<br />每个信号量至少须记录两个信息:信号量的值和等待该信号量的进程队列。它的类型定义如下:(用类PASCAL语言表述)<br />    semaphore = record <br />         value: integer; <br />         queue: ^PCB; <br />       end; <br />  其中PCB是进程控制块,是操作系统为每个进程建立的数据结构。<br />s.value>=0时,s.qu

2010-08-21 10:46:00 5644

原创 程序的并发执行

<br />      程序的并发执行,就是说系统中的各个部分不再以单纯的串行方式工作,在同一时刻系统中不是只有一个活动,而是存在许多并行活动。<br />      从程序的活动方面看,则可能有若干个作业程序同时或者相互穿插在系统中并发执行。这时,计算机不再是简单的顺序执行一道程序。也就是说,一道程序的前一操作结束后,系统不一定立即执行其后续的操作,而可能转而执行其他程序的某一操作。<br />      程序的并发执行可描述为:一组在逻辑上互相独立的程序或程序段在执行过程中其执行时间在客观上互相重叠,即

2010-08-20 17:19:00 3776

原创 操作系统接口

<br />    操作系统是用户和计算机之间的接口,用户通过操作系统的帮助可以快速、有效和安全可靠地使用计算机各类资源。<br />    通常操作系统提供两类接口:<br />    程序一级的接口(程序接口)。<br />    作业一级的接口(联机用户接口和脱机用户接口)。<br /> <br />    操作系统是“用户与计算机之间的接口”,操作系统又向用户提供了“用户与操作系统的接口”支持用户和操作系统之间进行交互。用户与操作系统的接口通常是由“命令”和“系统调用”的形式表现出来的。<br />

2010-08-20 16:41:00 2821

原创 内核与系统调用

<br />在一台计算机中,内核是大多数操作系统的主要单元,它是应用程序与硬件层实际数据处理的桥梁,它的主要功能就是管理系统的资源(硬件与软件的通信)。<br /><br />Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。二者在使用方式上也有相似之处,在下面将会提到。<br

2010-08-20 16:33:00 1110

原创 多重处理与多道操作系统

<br />1.wiki对多重处理的解释是:<br />Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks b

2010-08-20 15:57:00 3311

原创 poj1020--Anniversary Cake题解

<br />原题:http://acm.pku.edu.cn/JudgeOnline/problem?id=1020<br />题目要求我们检测是否能将给定的多个小正方形拼成一个完整的大的正方形。<br />采用搜索遍历的方法:<br />拼凑的方法类似于俄罗斯方块游戏,不同的是每次拼凑的时候必须先找到高度最低的那一列拼凑,如果某一个小正方形不成功的话,则回溯。<br />#include<iostream>using namespace std;const int maxSize = 40;

2010-08-18 22:57:00 1502

原创 poj1019--Number Sequence题解

<br />该问题很简单,我们分三步完成<br />1.首先找到i在哪个小的连续的子整数序列当中。<br />2.然后找到i在该子序列的第几个数中。<br />3.最后确定i位于该自然数的第几位。<br />#include<iostream>using namespace std;int GetNumber(int pos){ int i = 1,j,sum = 0; while(1) { if(i>=100000) sum += 6; else if(

2010-08-18 10:05:00 1115

原创 poj1014 Dividing题解

<br />原题:http://acm.pku.edu.cn/JudgeOnline/problem?id=1014<br />网上很多人说直接采用dp就可以了,但是我觉得不用那么复杂,用贪心算法+回溯+剪枝就可以了,而且特快,运行时间为0.<br />1.首先,将所有石子价值先加,如果sum为奇数,则返回false.<br />2.然后,采用贪心策略在石子中选择价值和为sum/2的组合,如果组合成功,返回true,否则false.<br />   a).既然贪心,那当然首先选价值为6的石子,在不大于sum

2010-08-12 12:28:00 2038

原创 poj1012 Joseph题解2

<br />之前用链表模拟了Joseph环,但是代码非常的长。<br />poj1012 Joseph题解:http://blog.csdn.net/Justmeh/archive/2010/08/11/5803590.aspx<br />我们注意到题目中并没有要求我们求出最后的剩余的人是第几个,所以与经典的Joseph环还是太一样,我们根本用不着用链表来模拟。只需要一个记录剩余环中的人数的变量即可,这样代码简洁多了,如下:<br />#include<iostream>#include<vector>

2010-08-11 13:03:00 961

原创 poj1012 Joseph题解

<br />DescriptionThe Joseph's problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . ., n, standing in circle every mth is going to be executed and only the life of the last remai

2010-08-11 11:43:00 1403

原创 poj1011sticks题解

<br />DescriptionGeorge took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they were origi

2010-08-10 22:18:00 963

原创 素数环问题与深度优先搜索算法

<br />n个数字(1,2,3...n)围成一个圈,要求相邻的两个数字之和是质数。<br />题目要求根据给出的n,计算所有能够组成满足条件的圈的数字序列。<br />Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionA ring is compose of n circles as s

2010-08-09 23:07:00 1795

原创 求组合数算法

<br />二项式系数C(n, k)满足下面的要求:C(n, 0) = C(n, n) = 1 for all n > 0;<br />C(n, k) = C(n− 1, k− 1) + C(n− 1, k) for all 0 < k < n.题目要求根据给定的n和k(0 ≤ k ≤ n < 231, n > 0)计算C(n,k),典型的递归问题。但是如果采用递归,当n的值比较大的时候,会堆栈益处。而上面的表达式应该有相应的公式。如果采用公式计算就会变的简单了。#include<iostream>

2010-08-09 19:48:00 5721 1

原创 青蛙的约会与欧几里德定理

参考出处:http://hi.baidu.com/newmyl/blog/item/d4e7ac07227afcc87a894735.html/cmtid/b5e81360995e8449eaf8f823青蛙的约会:在网上看了很多关于不定方程方程求解的问题,可都没有说全,都只说了一部分,看了好多之后才真正弄清楚不定方程的求解全过程,步骤如下:求a * x + b * y = n的整数解。  1、先计算Gcd(a,b),若n不能被Gcd(a,b)整除,则方程无整数解;否则,在方程两边同时除以Gcd(a,b),

2010-08-04 22:36:00 1198

转载 找质数算法

<br />原文:http://www.cnblogs.com/guoxiaocong/archive/2005/12/27/305611.html 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2

2010-08-03 20:18:00 1271

转载 “中国剩余定理”简介、算理及其应用

<br />原文:http://eblog.cersp.com/userlog/7978/archives/2008/723693.shtml<br />我国古代数学名著《孙子算经》中,记载这样一个问题: “今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何。”用现在的话来说就是:“有一批物品,3个3个地数余2个,5个5个地数余3个,7个7个地数余2个,问这批物品最少有多少个?”这个问题的解题思路,被称为“孙子问题”、“鬼谷算”、“隔墙算”、“韩信点兵”等等。那么,这个问题怎呢?明朝数学家程

2010-07-30 11:13:00 1399

转载 c++文件读写

<br />要写一些简单的日志到文本文件中,参考了以下两篇文章:<br />ifstream 和 ofstream( 引用)<br />C++标准库 之 iostream库的学习笔记(二)fstream库以及ofstream类的使用<br /><br /><br />ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; <br />在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运

2010-06-23 17:33:00 909

原创 构造函数,复制构造函数与拷贝赋值操作符

当定义或初始化一个类对象时,究竟会调用哪个呢?1.当定义一个新的类对象时,会调用类的构造函数。2.当初始化一个新的类对象时,会调用类的复制构造函数。3.当给一个已存在的类对象赋值时,调用的是拷贝赋值操作符。为了说明这一点,我们来看看下面的例子://头文件#ifndef CONSTRUCTOR_H_#define CONSTRUCTOR_H_#include using namespace st

2010-05-24 22:02:00 752

转载 移动互联网发展模式分析

    本文出上:http://news.microvoip.com/hydt/201004/20100423113558.html      最近看到“联想不顾一切地投入移动互联网在中国主场死磕苹果”的报道,感觉在众说纷纭、泥沙俱下的中国移动互联网发展阶段总算有个企业率先明白了。        移动互联网没有什么神秘的,不过是在移动中使用互联网罢了,但是总有一些专家和有钱烧的不知道干什么

2010-05-23 16:15:00 714

原创 list的排序问题

在STL中,排序是个很重要的话题。1.algorithm 里的sort()只接收RandomAccessIterator用于像vector,dequeue的排序,而list的排序却不能使用泛型算法sort。但是,list类中有自带的sort函数,且有两个版本的sort函数;一个不接受参数,另一个接受一个比较函数。我们一般是用第二个函数,然后自己写一个适合自己类型的比较函数。如:   bool gr

2010-04-11 11:06:00 735

原创 复制构造函数与赋值构造函数

      拷贝构造函数首先是一个构造函数,它调用的时候产生一个对象,是通过参数传进来的那个对象来初始化,产生的对象。       operator=();是把一个对象赋值给一个原有的对象,所以如果原来的对象中有内存分配要先把内存释放掉,而且还要检查一下两个对象是不是同一个对象,如果是的话就不做任何操作。还要注意的是拷贝构造函数是构造函数,不返回值;而赋值函数需要返回一个对象自身的引用,以便赋值之

2010-04-09 09:58:00 585

转载 static_cast、dynamic_cast、reinterpret_cast、和const_cast[转]

原贴地址:http://www.azure.com.cn/article.asp?id=298 关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_

2010-02-27 10:54:00 552

原创 动态二维数组的定义

首先,一维数组的动态定义很简单: int *arr = new int[row]; 于是,大家很可能想当然的认为二维数组的动态定义应该是: int **arr = new int[row][col]; 但是,这是一种错误的方法,二维动态数组的定义应该分成两个步骤: 1.首先,动态定义一个指向一维数组的指针数组,将其指针保存在arr中。 int **a

2010-01-25 11:02:00 2671

原创 函数模板注意的一个地方

在定义函数模板时,采用语句:template或template,其中T是模板类型。并且这个语句要同时出现在函数声明和定义的前面。需要注意的是,在vc中,当你定义函数模板时,一定要在调用该函数的文件前面包含上定义文件。否则会出错。

2010-01-24 23:41:00 1008

转载 [转]OpenGL快速渲染函数glDrawElements使用说明

OpenGL基本的绘图函数例如glVertex、glNormal等在调试模式下运行时,如果模型的顶点数或者三角面数过大(比如超过一万时),则程序运行速度会非常慢,根本就无法进行正常的调试。为此查阅了相关资料,找到glArrayElement、glDrawElements这两个个函数。这两个函数都能通过少数几条语句的调用实现大量数据的绘制,从而节省了函数调用的资源占用。 glArra

2010-01-18 16:50:00 29182

原创 openGL颜色的改变

1.屏幕颜色的改变有两个函数。glclear()用来清除屏幕的颜色。glclearcolor()用来设置清除屏幕颜色后屏幕的颜色。2.画图时的颜色用glcolor3f()或glindexi()来设置。其中glcolor3f()是用rgb来设置颜色的,参数传递rgb信息,而glindexi()是用颜色索引来设置的,参数用颜色的索引号,需要注意的是,颜色表是自己建立的。

2010-01-14 22:02:00 3831

原创 mysql_query()的返回值

mysql_query()一般是用来查询数据里面的数据。如:$username=$_POST["name"];$sql="SELECT *FROM members where login_name = username";$result=mysql_query($sql);以上程序是检测数据库中是否存在表单传送过来的用户名。如果检测成功,$result是返回数据库中的匹配的记录,如果出错则$r

2010-01-13 22:11:00 28658 2

3D游戏引擎中的室外大场景渲染技术研究与实现.pdf

3D游戏特别是网络在线游戏中,室外大场景渲染是一块非常重要的内容,它也是3D图形引擎的核心。它是图形学和图像处理理论最直接的应用,其涉及的技术还可以应用于其它领域,比如虚拟现实、3D GIS、数据可视化等,其重要性不容置疑。随着硬件的不断发展,行业对渲染场景的规模和真实感提出了更高的要求。这是篇很不错的博士论文,分享

2009-11-20

空空如也

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

TA关注的人

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