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

原创 HDU 2527

题目描述        HDU 2527分析        霍夫曼编码的应用。        本题没有必要构造一棵完整的霍夫曼树。只需利用霍夫曼编码的原理,每次挑选频率最低的两个元素进行合并。(显然,可以利用优先级队列,这里用数组来模拟)源码        //每次挑出现频率最小的两个元素,应该用优先级队列!!!!!!!!!!#include #include #i

2013-08-23 17:03:08 981

原创 HDU 2569

题目描述        HDU 2569分析        使用递推的方法可以解决。        设当悬崖的长度为n时,到达彼岸的方法有F[n]种。        显然,F[1] = 3, F[2] = 9, F[3] = 21     假设已知F[n-1]与F[n-2],寻求F[n]与F[n-1]、F[n-2]之间的关系。        分为两种情况:       

2013-08-23 09:53:29 825

原创 HDU 2544

题目描述:        HDU 2544分析:        Dijkstra算法的典型应用。源码:        #include #include //三个数组分别记录路线,最短距离,以及标志是否已经被扩展int map[101][101], dist[101], s[101];void dijkstra(int n, int x);int main(){

2013-08-23 09:34:22 952

转载 makefile基础

概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefil

2013-07-19 11:46:27 620

原创 不使用中间变量交换两个数

传统方法在交换两个数的值时,最经常使用的方法是借助于一个中间变量来进行交换。 temp = a; a = b; b = temp;方法一通过巧妙的加法与减法运算来实现两个数的交换。 a = a + b; b = a - b; a = a - b;方法二使用位运算(异或)来交换

2013-06-29 09:59:55 897

原创 线段树

线段树概述        线段树是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶节点。        线段树是建立在线段的基础上,每个结点都代表了一条线段[a , b]。长度为1的线段称为元线段。非元线段都有两个子结点,左结点代表的线段为[a , (a + b ) / 2],右结点代表的线段为[( a + b ) / 2 + 1 , b]。

2013-06-21 16:31:40 726

原创 HDU 1009

题目描述:        HDOJ 1009分析:        最简单的贪心算法的应用。        由于可以购买一个房间中的部分JavaBeans,直接将所有的JavaBeans按单价由高到低排序,然后贪心购买即可。最后购买的那个房间可能只购买其中的一部分JavaBeans。源码:#include void bubbleSort(float price[], i

2013-06-20 19:03:57 1056

原创 HDU 1213

题目        HDOJ 1213分析        最基本的并查集问题。        最后森林中树的数目(集合的数目)就是需要的桌子数。        求集合个数的方法:祖先为自身的元素个数即为集合数目。源代码#include void makeSet(int N);void unionSet(int A, int B);int findSet(int

2013-06-14 17:30:18 788

原创 最小生成树

相关概念        对于一个无向连通图G = (V, E),V是图中顶点的集合,E是图中边的集合。对于图中的每一条边(u, v) ∈ E,都有一个权值w(u, v)表示连接u和v的代价。最小生成树(Minimum Spanning Tree)问题就是找到一个无回路的子集T,它连接了所有的顶点,且其权值之和最小。常用算法        解决最小生成树类问题有两种常用的算法:Krusk

2013-06-04 22:43:06 649

原创 博弈问题

博弈问题概述            常见的博弈类问题有三种:巴什博弈、威佐夫博弈和尼姆博弈。        一般的思路都是寻找奇异局势(必败态)。        必败态:下一步无论如何处理都会达到必胜态;        必胜态:下一步至少存在一种处理可以达到必败态。        如果一开始是一个奇异局势,则先手必败;否则,先手必赢(如果双方都懂得游戏规则)。巴什博弈问

2013-06-03 21:53:08 1028

原创 二叉查找树(BST)及其C语言实现

二叉查找树        对任何节点x,其左子树中的关键字最大不超过key[x],右子树中的关键字最小不小于key[x]。        二叉查找树这种数据结构,它支持多种动态集合操作,search,minimum,maximum,predecessor(前驱),successor(后继),insert以及delete。在二叉查找树上执行的基本操作时间与树的高度成正比。对于一棵含有n个节点

2013-05-22 17:33:09 1778

原创 巧用异或运算

异或运算        对两个整数进行异或运算(运算符为^),将两个整数化成二进制表示,然后逐位运算。运算规则如下:        0 ^ 0 = 0;        0 ^ 1 = 1;        1 ^ 0 = 1;        1 ^ 1 = 0;        即两个位相同时,异或结果为0,反之,异或结果为1.        因此,两个相等的整数异或结果为

2013-05-17 14:57:15 1240

原创 函数指针

函数地址        函数也有地址,函数地址指的是存储其机器语言代码的内存的开始地址。        可以编写将另一个函数的地址作为参数的函数。这意味着,可以在不同的时间使用不同的函数。函数地址的获取        函数名即为函数地址。        如果f()是一个函数,则f就是该函数的地址。要将函数作为参数进行传递,必须传递函数名。        process (t

2013-05-03 11:11:44 495

原创 HDU 2199

题目描述        题目:HDOJ 2199分析        Y的值随着x的增加(0        注意"No solution!"的条件,可以通过设定两个阈值min和max来实现源代码#include double getValue(double x);int main(){ int T; double Y; double left, right, mi

2013-05-01 22:51:24 644

原创 HDU 3342

题目描述        题目:HDOJ 3342        题目真啰嗦,实际上是判断一个有向图中是否存在环。分析        应用拓扑排序,如果一个有向图可以顺利完成拓扑排序,其肯定不存在环;否则,该有向图肯定存在环。        陷阱:在输入数据的时候注意数据可能会重复,因此要加一个判断源代码#include #include int nodeRelati

2013-04-30 21:02:58 573

原创 内存对齐

内存对齐原因        主要是两个方面的原因:        (1):平台原因(方便移植)        不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常;        (2):性能原因        数据结构应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的

2013-04-27 17:21:04 558

原创 动态规划求解最大连续子序列和

问题描述输入一组整数,求出这组数字连续子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -4 13 -5 -2,则最大连续子序列和为20序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大连续子序列和为16。分析能想起来的用动态规划方法解决的最简单的题目了。其它方法时间代价过大,动态规划的时间代价仅为O(

2013-04-27 11:09:57 1030

原创 Windows与Linux中的回车换行

回车与换行的起源关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想

2013-04-27 10:48:52 1048

原创 C++内联函数与C语言宏的比较

C++内联函数通过将内联函数的编译代码与其它程序代码“内联”起来,提高程序运行的速度。即:编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,然后在跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是要占用更多的内存。若在多个不同的地方调用同一个内联函数,则程序将包括该函数的多个代码拷贝。应当有选择的使用内联函数。当函数代码过长或者逻辑较为复

2013-04-27 10:18:15 1160

wireshark教程

很详细的wireshark教程,很适合初学者

2013-04-26

openssl开发包

包括windows下(32位和64位)以及linux下开发所必需的文件

2013-04-26

netflow资料

非常全的netflow学习资料,包括netflow技术入门,netflow原理,netflow应用例子等学习教程

2011-12-17

LGame游戏引擎(包含jar包、样例)

一款国人做得游戏引擎,可以非常方便的用来进行android游戏开发,大大方便了android游戏的开发

2011-05-24

空空如也

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

TA关注的人

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