- 博客(11)
- 资源 (2)
- 收藏
- 关注
转载 Bellman-Ford求解单元最短路径
Bellman-Ford算法与另一个非常著名的Dijkstra算法一样,用于求解单源点最短路径问题。Bellman-ford算法除了可求解边权均非负的问题外,还可以解决存在负权边的问题(意义是什么,好好思考),而Dijkstra算法只能处理边权非负的问题,因此 Bellman-Ford算法的适用面要广泛一些。但是,原始的Bellman-Ford算法时间复杂度为 O(VE),比Dijkstra算法的
2011-06-22 21:20:00 1120
原创 HDOJ1863-畅通工程
Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( 行对应
2011-06-22 18:55:00 840
原创 HDOJ1233-还是畅通工程
http://acm.hdu.edu.cn/showproblem.php?pid=1233问题描述:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试
2011-06-22 18:53:00 1977
原创 HDOJ-1879继续畅通工程
http://acm.hdu.edu.cn/showproblem.php?pid=1879题目描述:省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。输入:测试输入包含若干测
2011-06-22 18:50:00 779
原创 lseek函数
int main(void){if(lseek(STDIN_FILENO,0,SEEK_CUR)==-1)printf("cant seek/n");eleprintf("seek ok");return 0;}cat cat /etc/motd | ./a.out# 通过 I/O 重定向,将文件作为 cat 的标准输入,由 cat 输出# 再通过管道作为 a.out 的输入#
2011-06-14 08:36:00 713
转载 Linux环境进程间通信-管道和命名管道
1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自
2011-06-09 07:54:00 849
转载 二叉树最近公共父亲节点
找寻二叉树中两个节点的公共父节点中最近的那个节点 情况1. 节点只有left/right,没有parent指针,root已知情况2. root未知,但是每个节点都有parent指针情况3. 二叉树是个二叉查找树,且root和两个节点的值(a, b)已知 虽然情况一是第一个情况,但是看上去比较复杂,我们放到最后来说,先从第
2011-06-08 22:31:00 8773 1
转载 Linux中的task_struct和内核栈
<br />在内核2.4中堆栈是这么定义的:<br /> union task_union {<br /> struct task_struct task;<br /> unsigned long stack[INIT_TASK_SIZE/sizeof(long)];<br /> };<br /> 而INIT_TASK_SIZE只能是8K。<br /> <br /> <br /> <br />内核为每个进程分配一个task_struct结构时,实际上分配两个连续的物理页面(8192字节),如图所示
2011-06-02 08:38:00 8172
转载 likely和unlikely
<br />在linux中判断语句经常会看到likely和unlikely,例如:<br />if(likely(value)){<br />}<br />else{<br />}<br />简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(value)。<br />也就是likely和unlikely是一样的,但是实际上执行是不同的,加likely的意识是value的值为真的可能<br />性更大一些,那么执行if的机会大,而u
2011-06-02 08:09:00 772
转载 linux进程控制-exec系列
<br />说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是: #include <unistd.h><br />int execl(const char *path, const char *arg, ...);<br />int execlp(const char *file, const char *arg, ...);<br />int execle(const char *path, const char *arg, ...
2011-06-02 07:53:00 558
转载 Linux下Fork与Exec使用
<br /> <br />一、引言<br /> 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系统是真正实现多任务操作的系统,可以说,不使用多进程编程,就不能算是真正的L
2011-06-02 07:49:00 885
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人