自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

转载 二分图最大匹配与最小路径覆盖(一些题目)

一些题目模型转化,文章转自:http://blog.sina.com.cn/s/blog_89a06c7d0100trcg.html在讲述这两个算法之前,首先有几个概念需要明白:二分图:二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的

2013-10-01 20:53:46 2244

转载 二分匹配,最大流,匈牙利图形解释及证明

证明思路很清晰,文章转自:http://duanple.blog.163.com/blog/static/709717672008111064351431/关于二分图,算法的流程在这篇blog里讲的很清楚,很多算法都结合了图形,所以讲讲得很易懂,推荐一下http://imlazy.ycool.com/post.1603708.html在这里还是主要关注一下关于这些问题的

2013-10-01 20:51:02 2832

转载 用匈牙利算法求二分图的最大匹配

文章转自博客:http://ycool.com/post/cfnym64什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,

2013-10-01 20:48:29 641

转载 Linux 多线程应用中如何编写安全的信号处理函数

此文章转自:http://blog.csdn.net/wangpengqi/article/details/11659085在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,信号在被处理后应用程序还将正常运行。在编写

2013-09-30 00:09:53 719

原创 Linux信号

1. 子进程继承父进程的信号处理方式,信号捕捉函数有意义。但是子进程的未处理信号集设置为空集,子进程的未处理闹钟也被清除。进程调用exec之后,并没有产生新的进程,只是用新程序替换了当前的正文、堆、栈和数据段,执行新程序的进程还保持闹钟剩余时间,进程信号屏蔽字,未处理信号,资源限制(还包括文件锁、文件创建模式屏蔽字、控制终端、当前工作目录和根目录)2. fork之后,调用exec函数,将原

2013-09-29 20:46:04 807

原创 孤儿进程

孤儿进程即父进程先于子进程终止的进程,会被init接管,其父进程变为1。孤儿进程组的概念:组中每个成员的父进程要么是该组的一个成员,要么不是该组所属会话的成员。一个进程组不是孤儿进程组的条件:该组有一个进程,其父进程在同一会话的另一个组中。进程组不是孤儿进程组,在属于同一会话的另一个组中的父进程就有机会重启该组中停止的进程。孤儿进程组的概念可以理解为组内所有的进程按照父子关系构

2013-09-29 17:17:57 1823

原创 进程、进程组、会话以及守护进程

1.进程、进程组与会话关系及其特性。(1)  每个进程都有一个进程ID唯一识别(pid_t pid=getpid());(2) 每个进程都属于一个进程组(getpgrp()),进程组属于一个会话(getsid(getpid())),是子集关系,即包含与被包含。(3) 进程组通常与同一作业相关联,接收同一终端的各种信号。进程组有唯一的进程组ID(类型与进程ID相同),可以有组长进程(进程

2013-09-29 15:28:18 3390

原创 构造函数与析构函数执行顺序及其与虚函数关系

#include #include #include #include #include using namespace::std;class A{ public: A() {cout<<"A";} ~A(){cout<<"~A";}};class B : public A{

2013-09-27 20:54:29 1089

原创 Linux学习随笔(2)

1. Linux有7种运行级别:   0:关机;1:单用户(root用户,禁止远程登录,维护系统);2:多用户无网络连接(禁止远程连接);3:多用户模式;4:未定义;5:多用户GUI模式;6:重启。   开机设置是在/etc/inittab文件,运行之后修改运行级别是通过命令:init N,查看当前运行级别为:runlevel    init 0 相当于halt;init 6相当于re

2013-09-27 19:02:52 665

原创 Linux学习随笔(1)

1.文件I/O(操作描述符,open, create, write, read, lseek)一般称为不带缓冲的I/O,即每个人read、write函数都调用内核中的一个系统调用。标准I/O(操作流),需要处理缓冲,为了减少read和write等的调用次数,标准I/O打开或创建一个文件时,文件已经与一个流相关联。流的定向决定了读写字符的是单字节还是多字节(fwide修改),FILE对象指针,包

2013-09-27 19:01:22 592

转载 《多线程服务器的适用场合》例释与答疑

转自:http://blog.csdn.net/solstice/article/details/53432172010 March 3 - rev 01 《多线程服务器的适用场合》(以下简称《适用场合》)一文在博客登出之后,有热心读者提出质疑,我自己也觉得原文没有把道理说通说透,这篇文章试图用一些实例来解答读者的疑问。我本来打算修改原文,但是考虑到已经读过的读者不一定

2013-09-27 18:59:41 828

转载 多线程服务器的适用场合

转自http://blog.csdn.net/solstice/article/details/53342432010 Feb 28这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。“服务器开发”包罗万象,本文所指的“服务器开发”的含义请见《常用模型》一文,一句话形容是:跑在多核机器上的 Linux 用户态的没有用户

2013-09-27 18:58:06 636

原创 Linux进程与线程学习随笔

1. 进程线程区别进程与程序:程序是一堆指令的有序集合,本身没有任何执行的含义,是一个静态实体;进程是具有一定独立功能的程序在某个数据集上的一次运行,系统资源调度与分配的单位,是一个动态实体,具有生命周期。反应了一个程序在一定数据集上运行的全部动态过程。进程与程序并不一一对应,程序执行在不同数据集上就是不同的进程,进程可以唯一标识,程序无法做到,因为程序和数据集没有直接联系,程序可

2013-09-27 18:54:37 1026

原创 TCP建立与断开连接以及错误处理(包括部分小问题)

1. TCP建立连接:三次握手,到处都有。需要注意的是ACK确认序列号是SYN携带序列号+1,不是直接相等。基本过程为如下截图2. TCP断开连接:四次分组交换。确认ACK序列号也是FIN携带序列号+1。基本过程如下。3. TCP建立连接的时候,初始序列号是随机选择的,两次SYN的序列号不固定。4. 为什么建立连接协议是三次握手,而关闭连接却是四次握手呢

2013-09-27 15:37:16 2235

转载 从无头单链表中删除某节点(编程之美3.4)

1. 题目:一个无头单向链表,有一个指针指向其中的一个节点(非第一个与最后一个节点),请问如何删除此节点。典型解法为“狸猫换太子”,删除一个链表节点,需要知道节点的前驱节点,但是当前无法知道,当前节点为下一个节点的前驱,因此可以将下一个节点的值赋给当前节点,然后删除下一个节点。pcur->next=pnext->next;pcur->data=pnext->data;del

2013-09-27 14:52:05 645

转载 僵尸进程

1. 僵尸进程:子进程先于父进程结束,但是父进程没有对子进程进行善后处理,包括获取进程的相关信息以及释放资源,即没有调用wait或处理SIGCHLD信号。         进程调用exit的时候并没有真正销毁,留下一个僵尸进程的数据结构。僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收

2013-09-27 14:17:58 617

原创 编程语言题目随笔

1.在用#define 定义时 , 斜杠("\")是用来续行的,"#"用来把参数转换成字符串,是给参数加上双引号。"##"则用来连接前后两个参数,把它们变成一个字符串,"#@"是给参数加上单引号。#define Cat(x,y) x##y    /* Cat(1,2) ==  "12"*/#define ToChar(a) #@a    /* ToChar(1) ==  '1'  */

2013-09-27 10:29:51 840

转载 epoll讲解--转自”知乎"

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要

2013-05-12 19:33:02 617

原创 几个fork面试题目的验证

原题目来源: 第一题,计算下面代码理论上总共打印了多少行:(网易2011笔试题) int main(){ int i; for(i = 0; i<5; i++){ fork(); printf("%d\n",getpid()); fflush(stdout); }}问题解答:问题的答案为62

2013-05-12 18:49:42 1026

原创 2013 腾讯实习生招聘 武汉 一面

应聘腾讯软件开发之后台开发,有幸参加一面技术面,开始没有自我介绍,直接进入技术面,题目主要分为三类:算法类、语言类以及网络类。算法:直接开始让写一个Hash表的插入与查找的实现,本人使用最基本的邻接表形式。然后后面提出了关于在一个大表里面如何淘汰过时数据的问题,即如果100万数据,如何快速选择过时数据并替代,节省存储空间。本人使用了一个10000长度的堆,其中维护可以被淘汰的10000个数

2013-04-29 15:03:07 666

DTMF双音多频信号的检测与利用

利用dtmf,进行电话的拨号和检测。可以通过频谱和dft运算来达到目的。

2010-01-16

数字信号处理 滤波器演示

数字信号处理实验的滤波器演示,用MATLAB语言编写,内有报告。

2010-01-16

空空如也

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

TA关注的人

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