- 博客(19)
- 资源 (7)
- 收藏
- 关注
原创 说明
2013-01-29 : 个人网站www.Gykimo.com开通。2013-02-04 : 博客访问次数突破1000。2013-05-14 : 博客排名从“千里之外”变为了“第18485名”。2013-06-03 : 我来到了一个新公司开始了新的工作。2013-06-08 : 博客文章达到100篇,第一百篇是《软件学习经典书籍和相关技术推荐》。我的官方网站
2013-01-29 23:10:24 842
原创 北大ACM2485 - Highways(最小生成树)
这是一道非常简单的关于最小生成树的问题。我们通过该题,完成对朴素prim、prim+heap、kruskal算法 的理解。朴素Prim算法设共有n个顶点,顶点之间没有必然的顺序,开始将其中一个顶点的权值设为0,其他设为最大(无穷大),花销是o(n)。每次从其中选择一个未处理过的权值最小的顶点,花销是O(n);然后更新和该顶点相连的顶点的权值,花销是o(n);共需要进行n次,花销是o(n
2013-01-28 16:59:50 1760
转载 C++ - 回调函数
由于DDEML机制需要使用回调函数,因此使用DDEML的关键是解决在MFC编程体系中回调函数的使用。回调函数(Callback function)大量用于Windows的系统服务,通过它,程序员可以安装设备驱动程序和消息过滤系统,以控制Windows的有效使用。许多程序员都发现,利用MFC或者其它的C++应用编写回调函数是非常麻烦的,其根本原因是回调函数是基于C编程的Windows SDK
2013-01-27 16:36:06 582
转载 C++ - 引用和指针
1.1.1.1 摘录从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于
2013-01-27 16:30:17 491
原创 向量
定义设N维向量A(a1, a2, ... ,an)和向量B(b1,b2...,bn)。加法两个向量相加得到一个向量,是各个维度值对应相加,即A+B=(a1+b1, a2+b2, ... ,an+bn)。应用如力学上,两个不同方向的力可以组成一个合力。点乘-数量积-内积先看一个应用,一个力对一个物体做的功,力F将物体从L1位置移到了L2位置,设产生的位移为S,则力的功为力
2013-01-27 15:06:31 3799
转载 STL - sort排序算法
sort模板有两种:---------------------------------------------------------------------template void sort(RanIt fist, RanIt last);template void sort(RanIt fist, RanIt last, Pred pr);--------
2013-01-25 17:57:30 857
转载 Prim、Kruskal、Prim+Heap算法效率实测
评测环境:WindowsXP,FreePascal2.40,Pentium(R) Dual-Core CPU T4300@2.10GHz,2G内存通过上图可以看出:1.Prim在稠密图中比Kruskal优,在稀疏图中比Kruskal劣。2.Prim+Heap在任何时候都有令人满意的的时间复杂度,但是代价是空间消耗极大。【以及代码很复杂>_3.时间复杂度并
2013-01-24 15:14:31 6663 4
原创 心得 - 如何读大型代码和写代码
硬件工程师画PCBà代码黑盒子首先,我们分析一下硬件工程师是如何将一个芯片画在一个PCB上的。硬件工程师首先阅读芯片的datasheet,他阅读的一个重点是芯片每个管脚的作用,是输入还是输出。硬件工程师不一定非要明白该芯片是怎么实现的才能将芯片正确地画在PCB上;不一定非得知道每个管脚的时序图,才能将用好该芯片。在读大型代码时,我们正在研究的某个模块或者类可能会new太多的其他类对象或者调用很
2013-01-16 18:17:13 2457
原创 北大ACM3253 - Fence Repair(赫夫曼编码)
1.1 算法分析赫夫曼编码由于这个问题,考察的是赫夫曼编码,所以优先级队列就直接使用STL的了。1.2 代码 /* * * Introduction : ACM of pku * ID : 3253 * alg : Huffman * Author : Gykimo * Date : 20121203 * */#include #
2013-01-14 17:06:53 1137
转载 STL - priority_queue 优先级队列
基本用法STL之优先队列原本以为priority_queue很简单,才知道原来懂的只是最简单的形式。头文件:#include优先队列,也就是原来我们学过的堆,按照自己定义的优先级出队时。默认情况下底层是以Vector实现的heap。既然是队列,也就只有入队、出队、判空、大小的操作,并不具备查找功能。函数列表:empty() 如果优先队列为空,则返回真 pop
2013-01-14 16:33:38 1632
转载 C++ - Struct和Class的区别
转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class
2013-01-14 14:46:48 570
原创 C/C++ - 小语法集锦
开头 "::" 的作用//开头就是两个冒号用于引用全局变量 int count = 0; //全局变量 int main(void) { int count = 0; //局部变量 ::count = 1; //设全局变量 count 为 1 count = 2; //设局部变量 count 为 2 return 0; } 指针和int之间的转换 int m
2013-01-07 10:05:24 559
原创 北大ACM1979 - Red and Black (广度优先搜索)
1.1 算法分析这是一道很简单的广度优先搜索问题,我们以原始位置开始向四个方向搜索,如果是黑色的地砖,则将地砖标记为已经搜索过,然后搜索该黑色砖的四个临近地砖;如果该地砖是红色的或者搜素过的,则不再对该地砖进行搜索了。1.2 代码/* * * Introduction : ACM of pku * ID : 1979 * alg : BFS
2013-01-06 18:19:26 1752
转载 简单算法 - 交换两个整数的三种方法
如何交换两个整数是个再平常不过的问题,这里给出三种方法。第一种就是大家最熟知的使用tmp,后两种不使用第三变量。//演示交换两个整数的三种方法#include using namespace std;int main(){ //方法一,使用第三方变量 int a = 10; int b = 5; cout cout int tmp = a;
2013-01-06 13:25:35 1657
转载 人龟赛跑
一这是希腊一个着名的诡辩例子,同时它也是份道着名的智力题:阿里是古希腊有名的短跑冠军,有一次他要跟一只小乌龟赛跑。假设他的速度是乌龟的10倍,每秒跑10米。小乌龟站在阿里前面10米远的地方,当他跑10米时,小乌龟已经向前跑了1米;他追了1米,小乌龟也向前跑了1/10米;阿里再追1/10米,小乌龟又向前跑了1/100米……总要差一点。难道阿里就永远都追不上小乌龟了吗?学过数学分析的人都明
2013-01-02 15:58:29 831
转载 为什么Hadoop将一定会是分布式计算的未来?
版权声明:写本文由leftnoteasy发布于http://leftnoteasy.cnblogs.com 本文可以被全部或者部分的使用,但请注明出处,如果有问题,可以联系wheeleast (at) gmail.com, 也可以加我的新浪微博:http://weibo.com/leftnoteasy 前言: 很久没有写写博客了,之前主要是换工作,耽误了很
2013-01-02 13:49:35 616
转载 分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable
分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable 谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]。虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文。而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Ha
2013-01-02 13:48:27 724
原创 枚举 备忘录法 最优规划对比
可以参考案例北大ACM1163 - The Triangle(枚举法&备忘录法&动态规划)http://blog.csdn.net/gykimo/article/details/8457011 1.1.1 什么是自顶向下和自底向上自顶向下是我要达到什么目标,然后分析需要什么次级目标,为了达到次级目标还需要更次级目标,依此类推。类似于领导分配任务,领导
2013-01-01 12:14:44 1526
原创 北大ACM1163 - The Triangle (枚举法&备忘录法&动态规划)
1.1.1 枚举法该问题我使用了枚举法、备忘录法、动态规划法主要是对三种算法进行比较。任何选择的问题,都可以通过穷举所有可能性,然后从中选择适合的项,这就是枚举法。枚举法是自顶向下,一般也会有递归公式。设h为Triangle 的高度,v[i,j]为点(i,j)的数字值,sum[i,j]表示到从底到点(i,j)的所有路径中的最大和运行结果Time Limi
2013-01-01 12:12:24 2200
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人