- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 翻格子游戏
前几天,朋友玩一个解谜类的游戏。中间有一个关卡,大概是这样的:有一个5*5的板子,初始时,每个格子都是背面朝上。我们可以手动翻转任意一个格子,但其上下左右——如果有的话——的格子也会随之一起翻转,问怎么翻,可以将所有格子都翻到正面朝上。当时蛮无聊,那就写段代码试试看吧。这里,手动翻我们定义为主动,而被动当然就很清楚了。不难想到,对任意一个格子来说,我们主动翻N次和N+2次的
2014-01-14 16:30:00
4156
原创 人艰不拆——记在工作一个半月之后
写在前面的话本来年初申请了独立部落格的,也更了几篇文章。无奈,域名需要备案balabala,想想都觉得麻烦,干脆就弃掉,又重新回到了这里。---------------------------------------------------------------------------------------------掐指一算,工作已经有一个多月啦。可再想想,发现这段时间也没做什么
2013-08-14 00:20:49
1435
原创 Linux tun/tap驱动
tun/tap是纯软件实现的一套虚拟网络设备。tap表示虚拟以太网设备,工作在二层网络上,具有直接处理以太帧的能力。tun表示虚拟点对点设备,工作在三层网络上,具有处理IP包的能力。其实现原理相对简单。它在内核空间添加一个杂项设备(msicdevice)/dev/net/tun,实质上就是一个主设备号为10的字符设备,作为用户空间与内核空间信息交互的接口。tun/tap驱动程序包括两个部分,一
2012-12-13 13:23:58
8033
原创 学习使用libevent(一)
PRE——写在前面的话最近在学习libevent,希望可以好好整理一下~计划是这样,先简单总结一下怎么使用它,然后开始分析源代码。其实,目前网上已经有不少相关资料,比如说,官网(http://libevent.org/)为我们提供的Documentation,还有http://cpp.ezbty.org/的《libevent源码深度剖析系列》,这里再总结一下,也算是对自己的提高吧。
2012-12-08 21:39:32
5456
转载 gvim与插件的安装(ctag、taglist、cscope等)
原文出处:http://luckybins.blog.51cto.com/786164/681325=======================================================gvim使用户能够在Windows环境下,能够像利用Linux的vim工具进行文本编辑,特别是程序编写,并且,很多插件都可用。但是,毕竟Windows环境不同于Lin
2012-12-08 20:19:04
4193
原创 【杭电1050】Moving Tables
题目描述直达:点击打开链接题目看似不难,用贪心的思想就可以完成。但有若干小陷阱。1、输入数据可能会存在s大于t的情形。2、 要分两组完成,而 只需要一组。这些,起初就想到了,先看我的思路吧。大致是这样的,首先需要为房间号x做一个(x+1)/2的映射,创建一个标记数组flag[200][201],第一维表示组号,第二维表示对应的过道占用情形,举个简单例子,flag[0][3]=1
2012-11-22 10:34:06
1322
转载 strlen与sizeof的区别
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char *做参数,且必须是以'\0'结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。5.大部分编译程序
2012-09-15 20:39:21
462
原创 原来是这个样子的!
#include #include int main(){ int a[3][7]; int *b = &a[0][0], i; for (i = 0; i < 21; i++) { b[i] = i; } printf("%d\n", a[1][8]); return 0;}理解误区:这里,a[1][8],8超过了第
2012-09-14 16:00:21
572
原创 ping某域名的整个流程
【声明】根据网上检索到的资料,自己整理了一下。 - 首先本机发送域名请求数据到PC设置的DNS ip- PC通过子网掩码判断DNS ip是本网段还是跨网段(这里只考虑跨网段)- 由于是跨网段,PC发送DNS域名解析数据包到PC设置的网关ip上。(此时先要进行二层的mac转发,PC查看本机arp缓存表,如果表中有网关的mac地址,直接转发,如果没有,使用arp解析协议解析到网关
2012-09-13 16:54:29
4869
1
原创 面试被鄙视!
仅用一行shell命令实现功能:删除当前目录下size最大的那个文件。rm -f `ls -S |awk "NR==1"`或rm -f `ls -S1 |head -n1`或......给跪,这应该是搞运维的同志们才会这么用吧。但是,就这么rm了却不知道是哪个,难道不心虚么么么么么么,毕竟眼见为实嘛
2012-09-12 15:53:45
994
原创 Netperf性能测试工具
Netperf是一款开源的网络性能测试工具,主要针对TCP和UDP传输进行测试。它有4种工作模式:TCP_STREAM、TCP_RR、UDP_STREAM、UDP_RR。后续将会对每个工作模式进行详细说明。关于Linux系统下如何安装,这里不作说明,网上资料有很多很多。有没有Windows版本的Netperf呢?当然有的,需要下载的话,请戳这里:NetPerf-2.4.5-w32.zip。【请
2012-07-12 16:31:23
24847
1
原创 单链表倒置算法
先上代码。void reverse(list *head){ list *p, *tmp; p = head->next; //p指向当前正在处理的节点 tmp = p->next; //tmp指向尚未被处理的第一个节点 p->next = NULL; //原单链表第一个节点将成为倒置后最后一个节点 head->next
2012-07-12 16:19:56
18814
3
原创 KMP算法源码备份
【DEV-C工程】什么都不说,直接上代码。#include #include char str_a[22] = "abcabcddacdabcdbabadac";char str_b[7] = "abcdbab"; int next[7] = {-1}; void Next(char *str, int len){ int i, k; nex
2012-07-12 16:14:57
612
原创 How to fix "Case folding collision" in Mercurial
首先,说明一下,什么是Case folding collision。在Windows系统中,文件名大小写是不敏感的。比如说,在同一个目录下,abc.txt和Abc.txt被认为是同名的。而在Linux系统中,文件名大小写是敏感的。也就是说abc.txt和Abc.txt根本就是两个不同的文件!这样,问题就来了。当你在Linux系统中,将这样的两个文件push,然后试图在Windows
2012-07-12 14:20:22
857
原创 关于位域的一点总结
位域(Bit-field),又叫位段(位字段),是一种特殊的结构成员或联合成员(也就是说,只能出现在结构体或联合体中),用来指定该成员在内存中所占的bit数。比如struct st { unsigned a:5; unsigned b:4;};那么,位域究竟在哪里会被用到呢?1. 不难设想这样一种情形。当使用位域时,可以节省大量内存空间,同时高效地实现相应功能。
2012-07-12 14:18:39
607
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人