- 博客(18)
- 资源 (7)
- 收藏
- 关注
原创 autoconf 和 automake 生成 Makefile 文件学习
引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以轻而易举的理顺各个源文件之间纷繁复杂的相互关系。
2011-04-28 20:50:00 1884 2
原创 PKU 3624 0-1背包
题意:标准的0-1背包问题。内存方面使用滚动数组。时间方面可以先对W[]进行非升排序。本来在输入数据时候还打算记录最小重量,在knap时候进行优化,但发现结果没有什么变量,所以并没有加上。
2011-04-26 19:12:00 590
原创 0-1背包
问题描述给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包容量为c。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。因此,该问题称为0-1背包问题.DP思想:首先物品个数为n个, 包总容量为c, 其中w[],v[]分别为n个物品的重量、价格。表m(i,j)表示从第i个物品开始容量为j的包的最大价值量。
2011-04-26 08:52:00 752
原创 SPEC2006编译经历
Standard Performance Evaluation Corporation)标准性能评估公司(SPEC) 是一个非营利性机构。开发的基准程序集主要用来测试CPU等性能。下面是我编译过程中遇到的问题及解决方法,希望有所帮助。
2011-04-25 20:28:00 11590 30
原创 让CPU占用率画出正弦曲线
都说计算机编程乏味,可是好多程序员却玩地津津有味。计算机的世界什么都可以用来做为程序员的游戏,比如CPU。下面就让我们来让Windows下的任务管理器听我们指挥,画出完美的正弦曲线吧!
2011-04-22 16:38:00 5199 1
原创 基于比较的内排序算法(一)
今天把基于比较的内排序算法写了一遍,其中包括bubbleSort, selectSort, insertSort, heapSort, quickSort, shellShort。 mergeSort留了接口以后补上,下篇再把几种排序的时间复杂度、稳定性、适用情况、运行结果总结一下。
2011-04-18 21:30:00 753
原创 (三)二元查找树转换双向链表
题意:不引入新节点,只允许指针操作,实现二元查找树转换为相应双向链表。分析:方法0:转换后的双向链表正好为原树的中序遍历,所以引入一个新指针递归遍历即可。方法1:从10节点看,它的前趋、后继分别是左子树的最右节点与右子树的最左节点,所以找到前趋与后继保存,递归实现即可。
2011-04-16 15:37:00 680
原创 (二)用双栈实现队列
分析:队列是FIFO,而栈是FILO。这里考虑两个栈,mStack1和mStack2。push_back()操作时假设都push到mStack1中,如果需要front()操作或者pop_front()操作时,应该拿到mStack1中栈底的元素。这时就用到mStack2,把mStack1中的元素全部push到mStack2中,然后再进行mStack2的top()和pop()操作。理论上分析如果,每次pop_front()的都是最早进入的,而新加入元素都在mStack1的最上面,pop_front()的时候是最
2011-04-16 09:49:00 4059 1
原创 (一)设计包含min函数的栈
<br />题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。<br /> <br />分析:普通的栈push(),pop()都是O(1),现在需要加入min方法。第一眼看这个题,想到在栈结构中加一个min变量,保存当前栈最小元素。这样在push()操作时比较当时元素与min变量值来决定是否要替换min变量,即push()操作O(1),但是pop()的时候最有麻烦,因为如果pop()的是最小元素,那更新min变量就需要重新遍历整
2011-04-15 21:26:00 878
原创 PKU 1065 贪心求值
<br />贪心思想:局部最优从而达到整体最优<br /> <br />题意:t组测试数据,每组n块木头,每块木头有相应的length和weight。现在对n块木头进行处理,setup time如下定义:<br />1、处理第一块木头setup time为1<br />2、如果后来处理木头的length和weight分别都不小于前一块的length和weight,则不需要setup time,否则setup time加一<br />求处理全部木头的最小setup.<br /> <br />分析:<br />
2011-04-14 12:46:00 853
原创 PKU 2488 深度优先搜索
<br />背景:对于有些问题没有好的算法去求解,只能通过遍历搜索的方式寻找可行解,此时就用到了宽度优先搜索和深度优先搜索。深度优先搜索用栈实现,可以利用系统的栈区递归调用,也可以自己维护好结构。一般来说,自己维护栈对空间的把握更准确一些,而且调试也更方便一些。不过递归调用的方式有时确会写出很漂亮的代码,深度搜索随着问题规模增加时间开销会显著增加,此时必须通过一些剪枝技术来进行优化。宽度优先搜索用队列来实现,随问题规模增加空间开销会显著增加。<br /> <br />题意:给出棋盘行列数,求从(1,1)点能
2011-04-14 10:31:00 1103
原创 PKU 1001 高精度乘幂
<br />题目: 求Rn ,其中R是一个实数范围是 0.0 < R < 99.999 ,n是一个整数的范围是 0 < n <= 25. <br />分析:高精度运算,字串符模拟数值运算。需要注意的是各种输入格式处理:123, 0123, 012.3, 123., 123.0, 123.01, .123, .1230等等,我的方法是先把如上这些情况输入处理成(123,0),(123,0),(123,1),(123,0),(123,0),(12301,2),(123,3),(123,3)这些形式。即删除小数点
2011-04-12 20:37:00 1119 1
原创 PKU 1062 单源最短路径
背景:有向图G=(V,E),求源点s的单源最短路径问题。解决方案为Dijkstra算法。算法描述:1、把源点v0放入到集合S中,计数器c=0。每个结点一个结构数据d(a,b), a表示到v0的最短路径长,b表示a的前趋节点。 初始化v0为d(0,-)并且除v0外的所有节点为d(INF,-)。这里面INF表示无穷大。2、通过遍历集合S中所有节点v,来更新非集合S中所有节点u.更新条件为 d[u].first = min{du[u].first, d[v].first +
2011-04-12 10:26:00 880
原创 PKU 1087 网络最大流
题意:现在有m个设备,n种电源插座,k个适配器。适配器a b作用为可以把a插头转成b插头,也就是原来用a电源的设备现在可以用b电源需要注意的几点:1、"only one receptacle of each type",对于n种电源插座,每种类型只有一个2、"No two devices will have exactly the same name",对于m个设备,彼此不相同3、14、适配器的数量是无限的5、求最小几个设置没有电源分析:一道很标准的网络最大流问题,关键在于建图1、取源点、汇点分别标号0,1
2011-04-11 16:40:00 855 1
原创 PKU 1251 最小生成树
背景:无向连通图G=(V,E)的最小生成树算法:1.prim算法:(1)初始顶点集合S为空,把任意一个顶点s加入集合S. (2)迭代|V|-1次,每次加入顶点u,使得v属于S,u不属于S并且(u,v)权值最小, 记录边(u,v) (3)所有记录过的边(u,v)即最小生成树2.kruskal算法: (1)把有|E|中边按权值非降排序 (2)边初始集合S为空,每次加入权值最小的边,当加入后边集合不构成回路,删掉此边。回路判定可以采取并查集方法 (3)边集合为最小生成树
2011-04-11 10:46:00 717
Multi2sim-3.1.1.tar.gz
2011-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人