自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 vs2012 DirectX 编译错误

1、error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4这种错误。 解决的方法:在库文件的忘了添加或者没有设置为第一位:Microsoft DirectX SDK (August 2009)\Lib\x86。

2014-01-21 15:04:43 854 0

原创 tcp 定时器

TCP 四大定时器:     1、重传定时器:最近又看了几遍《TCP/IP 详解》有些疑问弄清了,现在总结一下。 TCP为每个连接维护一个重传定时器,在发送报文时如果定时器已经使用,则该报文不会计时(不会计算它的超时)。重传时间RTO最基本的就是等于RTT,但一般会进行平滑,比如:        ...

2013-08-24 19:17:40 1066 0

原创 Tornado 源码

如上图,是Tornado运行的大概流程图,其中对RequestHandler的各个接口没有详细分析,仅仅是列出RequestHandler如何与HTTPConnection、IOStream、IOLoop交互的。

2013-07-02 14:34:54 1374 0

原创 Tornado httpserver模块

httpserver里面定义的类有HTTPServer、HTTPConnection、HTTPRequest。HTTPServer是一个非常简单的HTTP服务器,主要作用就是创建监听套接字,设置监听套接字的读事件hander,(创建多进程模式),接下来调用HTTPConnection处理整个连接。...

2013-06-27 14:56:46 8232 0

原创 Tornado IOStream类分析

Tornado中的IOStream封装了socket的非阻塞IO的读写操作,我个人觉得比较有意思的是read_util()接口:设置一个标志字符串和回调函数,其余的工作都可以省略了,当IOStream读到标志字符串时自动调用该回调函数,整个接口很人性化,简洁方便。     属性:      s...

2013-06-26 13:53:30 3955 0

原创 Tornado 之 IOLoop类分析

源代码 Tornado 1-2-1     IOLoop类是Tornado的边缘触发事件驱动模型,在Linux平台下面封装的是epoll模型,这个类的代码也很简单,比Nginx好看多了。     先看属性:             _handlers保存(fd,handler)的映射关系,_...

2013-06-25 14:04:50 6621 1

原创 高性能 网络编程

最近在看一些比较好的网络编程方面的文章,也想比较深入地提升自己的技术能力,于是贴出一些链接: 1、C10k 问题 http://www.kegel.com/c10k.html http://blog.csdn.net/goldou/article/details/2579781 ...

2013-05-23 11:24:51 1162 0

原创 epoll 经验

一、epoll相对于select的优势: select/poll的缺点: 1.每次调用时要重复地从用户态读入参数。 2.每次调用时要重复地扫描文件描述符。 3.每次在调用开始时,要把当前进程放入各个文件描述符的等待队列。在调用结束后,又把进程从各个等待队列中删除。 4.支持的...

2013-05-20 17:16:57 2126 0

原创 Nginx event 模块分析

ngx_event_core_module 模块:     上下文是:      typedef struct {     ngx_str_t              *name;     void                 *(*create_conf)(ngx_cy...

2013-04-02 14:06:05 5909 0

原创 虚拟继承、多态的内存布局

测试平台,Ubuntu 12.04--x64 代码如下: #include #include using namespace std; class A { public: long a; virtual void a1() { cout << "A:...

2013-03-20 16:28:17 1168 0

原创 Nginx 进程模型

由于这篇博文  http://blog.csdn.net/gsnumen/article/details/7979484?reload 已经分析的很清楚了,我只想自己整理一下: 使用 UNIX域套接字 socketpair() 异步通讯机制:nginx在创建worker前将先调用 socketp...

2013-03-07 11:24:49 1224 0

原创 nginx http_core模块 配置文件解析 2

上一篇讲述了配置文件的整体结构,下面重点分析htt_core模块的配置信息结构,得到如下的一幅图: 从上面很明显可以看出需要合并的ngx_http_core_srv_conf_t、ngx_http_core_loc_conf_t结构体。但是ngx_http_merge_locations...

2013-03-05 13:56:54 1827 0

原创 Nginx http_core模块 配置文件解析

Nginx 的配置文件解析很麻烦,数据结构交织在一起,特别恶心,经过几天的分析,得到了一幅大概的关系图,自以为是正确的。 cycle = ngx_init_cycle(&init_cycle):        1、在内存池中分配一个ngx_cycle_t变量,并初始...

2013-03-04 13:46:45 5144 0

原创 zoj 2156

/** * zoj_2156 * 多重背包+遍历路径,优先取小的 */ #include #include #include using namespace std; int const value[] = { 1, 5, 10, 25 }; int v[60], n; int ...

2013-02-06 14:02:25 865 0

原创 zoj 2401

这题我居然用背包过了。当然,算法不是最好的,根据网上的题解,如下算法更好。 考虑str_c,它的最后一个字符c[la+lb-1]是a[la-1]或者是b[lb-1],于是递归下去有方程:dp[i][j] = dp[i-1][j]( 满足:a[i]==c[i+j]) | dp[i][j-1]( 满...

2013-02-06 13:58:56 919 0

原创 zoj 1986

我out了,想不到最长上升子序列还有nlogn的算法,看来以前学得不够仔细,于是把代码贴出来学习一下。         参考:http://blog.csdn.net/Hashmat/article/details/5883605 http://acm.tzc.edu.cn/acmhome/t...

2013-02-04 15:16:00 899 0

原创 poj 3494 Largest Submatrix of All 1’s

最近在学习单调桟,这个题目听有意思的,需要稍微动动心思,往poj 2559上想。但是时间总是1700MS左右,真不知道网上那些100ms是怎么出来的。 /** * poj_3494.cpp * */ #include #include #include using namespac...

2012-12-24 22:31:39 1611 1

原创 pat 1038 Recover the Smallest Number

这题明显是贪心的策略,但是排序算法一直没写好,费了我几个小时。后来发现,有个博客http://ppcool.iteye.com/blog/1731427 里面的排序好简单呀,好受打击。回宿舍继续舔伤口。 /* * pat_1038.cpp */ #include #include #in...

2012-12-16 11:51:05 1905 1

原创 zoj 2626 Polygon Game

这题Dp方程很容易想到,但是居然WA了一天,后来一个博客,才发现负数对最大值的影响。恍然大悟呀…… /* * zoj_2626.cpp */ #include #include #include #include using namespace std; #define N 52...

2012-12-15 16:28:17 901 0

原创 zoj 2710 Two Pipelines

这题我是用dp过的,回头看了网上的资料,可以用谈心。再想想吧,先保存以下代码: /* * zoj_2710.cpp */ #include #include #include #include #include using namespace std; #define N 2...

2012-12-09 16:04:22 898 0

原创 zoj 1100

这题是简单的状态压缩,和黑书的那个bug公司类似,不过更简单。代码如下:(当然,可以打表) #include #include #include using namespace std; #define HW 20 #define hpmax(a,b) (a)>(b)?(a):(b...

2012-12-06 21:41:12 1418 1

原创 zoj 1025

这题刚开始直接dp求最长非递减子序列,再加上next数组,于是WA。结合网上的代码,才发现,其实就是求最少组的非递减子序列,直接从小到大扫描就可以了。自己还是太水了,后悔大学不努力呀! /* * zoj_1025,就是求最少组的非递减子序列,用贪心就可以,不用dp求最长非递减子序列 */ #...

2012-12-01 21:57:02 1354 0

原创 uva 10617

这题想了一下,可以枚举出str[i]、str[j]的所有决策: 1、如果str[i] == str[j],不删除str[i] str[j]:dp[i][j] += dp[i+1][j-1] + 1(1表示把[i+1,j-1]全删除后,它还是回文); 2、删除str[i]:就是dp[i+1][j...

2012-11-28 22:25:40 673 0

原创 poj 1159

这题用short水过,一看网上大牛的代码,居然说可以用滚动数组!太厉害了。 //poj_1159 #include #include #define N 5010 #define INF 10000 #define hpmin(a,b) (a)<(b)?(a):(b) int n; c...

2012-11-26 21:03:01 441 0

原创 poj 1141

这个题目让我蛋疼了一晚上,最后对比别人的代码,才发现问题:居然使用while ( scanf("%s", str) != EOF ) 导致WA!这不科学呀! //poj_1141 #include using namespace std; #define INF 1...

2012-11-22 20:31:27 695 0

原创 Splay-tree poj 3580

SplayTree 伸展树:自调节的二叉搜索树,能把最近访问的节点移到根节点出。适用于各种实际应用,尤其适合实现cache和garbage collection算法。空间少,性能平摊也有竞争力,编程易实现。 优点: 1、  实现简单,比AVL、红黑树更简单。 2、  性能好,平均性能比得上其...

2012-07-25 20:55:12 1695 1

原创 经验点滴

1、strncpy:使用这个函数注意要自己设置结尾,如果原来的缓冲区还有数据,strncpy仅仅是覆盖前n个字节,后面保持原来的数据。很多次写程序都发现缓冲区里的数据还是上次的结果,这里痛定思痛,记下来。而strcpy却会自动的添加'\0'字节。         strncp...

2012-07-20 16:05:04 467 0

原创 B+tree 实现

/** BPlusTree.h 2012/6/24--2012/7/5 hpghy, 790042744@qq.com **/ #ifndef BPLUSTREE_H_ #define BPLUSTREE_H_ #include #include #include usi...

2012-07-05 16:13:49 1381 0

原创 B+树

为什么说B+-tree比B 树更适合实际应用中操作系统的文件索引和数据库索引? 1) B+-tree的磁盘读写代价更低 B+-tree的内部结点并没有指向关键字具体信息的指针。因此其内部结点相对B 树更小。如果把所有同一内部结点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多。一次...

2012-06-24 13:22:01 5882 0

原创 zoj 2107

这题做了很久,一直都是1秒多,真不知道他们300ms是怎么做出来的。看了网上的代码,大部分都是O(nlgnlgn),于是绞尽脑汁,写了个O(nlgn)的代码,但是时间上没有显著地提高。 /** * O(nlogn) * zoj_2107 **/ #include #include ...

2012-05-21 15:19:00 826 0

转载 grub rescue:

ubuntu和Win7的双系统,不知怎么搞成了“error: unknown filesystem grub rescue:”,使用以下的方法: http://www.cnblogs.com/samcn/archive/2011/03/30/1999615.html 1.  先使用...

2012-05-16 19:31:24 384 0

原创 zoj 1453

/** * zoj 1453 * 不需四舍五入 * */ #include #include #include #include #include using namespace std; struct Point { int x, y; }; const double ep...

2012-04-30 16:05:54 541 0

原创 zoj 3234

#include #include #include #include using namespace std; struct Point { int x, y; }; const int N = 2010; Point soldier[N]; int n, cnt; int pt[...

2012-04-30 16:03:16 548 0

原创 zju 2334 monkey king

因为最近在学习二项堆,所以拿这题练练手。其实这题思路很清晰,就是在二项堆中加入并查集的特性。因为在一个sb的地方犯了一个sb的错误,卡了几个小时。一切尽在代码中…… /* * zoj2334 monkey king */ #include #include #include using...

2012-04-09 22:54:55 801 0

原创 表达式模板 expression templates 测试

表达式模板,在《c++ template》中是为了同时支持数组操作的优雅性和高效性,并说,metaprogramming主要适用与小的大小固定的数组,而expression templates适用于中性和大型数组的运行期操作。但实际上,经过我的测试,元编程和表达式模板不像书中说的那么神奇,或许,是...

2012-04-07 18:56:28 735 0

原创 c++ template之trait技法总结

Trait技法的最初目的是为了管理模板参数,有的时候模板中需要几个参数,但是往往有些参数是与main parameters紧密相关的,这时候可以使用trait技巧,从几个主要的模板参数中推导出相应的secondary template argument,并以默认模板参数的形式出现在模板中。实际上使...

2012-03-19 21:20:54 8259 0

原创 B-树 实现3

上次有了B-树的两种不同的实现,现在我们来测试一下两种实现的效率,由于命名一样,我设置了不同的名字空间,下面是测试代码: #include #include #include #include #include "BTree.h" #include "BTr...

2012-03-08 21:19:21 667 0

原创 B-树实现2

/** * BTree.h * * 采用网上流传已久的插入删除算法——回溯方式 * 与《算法导论》中的不一样,但是效率更高 * * 790042744@qq.com * 2012/3/5 * **/ #ifndef BTREE_H #define BTREE_H ...

2012-03-08 20:09:20 518 0

原创 B-树 实现

B-树主要用在文件系统中,关键字为文件名,值为文件在磁盘中的地址。分支因子很大,一般为50到2000,一个节点就用一个磁盘块存储。 按照《算法导论》的描述,节点有如下性质: 1、至少有t-1个关键字,至多2*t-1个关键字,关键字以升序排列; 2、至少有t个子女节点指针,至多2*t个; 3...

2012-02-29 20:47:07 556 0

原创 红黑树

/*****************************************************************************************\ * rb_tree.cpp * 学习 SGI STL 中的实现 《STL源码剖析》 * 没有添加迭代器 *...

2012-02-19 20:59:39 1633 0

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