C/C++
文章平均质量分 77
tan
这个作者很懒,什么都没留下…
展开
-
。
qq群里的一个同学发了一个这样的题目:给定一个数t,以及n个整数,在这n个数中找到和为t的所有组合,例如t=4,n=6,这6个数为【4,3,2,2,1,1】,这样的不同组合他们的和为4: 4, 3+1 ,3+1,(有两个1,所以有两个3+1) 2+2 , and 2+1+1,2+1+ ,请设计一个高效算法实现。 看到这个问题,首先想到的就是递归,思路是这样:实现一个这样的函数:fun(原创 2010-05-06 19:46:00 · 1223 阅读 · 2 评论 -
最短路径问题的延伸
遇到一道与最短路径相关的问题,题目如下: 如图: 各边权值已经给出在对应边上。假设邮递员只能按照有边的路线走,以起点为1,必须经过的点为3,5,最后返回到起点1的路径中,给出一个有效算法寻找一条最小权路径(路径中每条边权之和最小)!注意:允许在某边上来回,或者经过某些点多次,或者某些点没有经过,但必须经过顶点3,5至少一次。现在我们来分析: 从1出发,经过3、 5,原创 2010-05-17 19:30:00 · 793 阅读 · 2 评论 -
stl algorithm : count、find、lower_bound、upper_bound和equal_range的区别
注意count、find、lower_bound、upper_bound和equal_range的区别(Effective STL) 2009-07-01 11:08 要选择搜索策略,必须依赖于你的迭代器是否定义了一个有序区间。如果是,你就可以通过bina转载 2011-08-17 09:45:29 · 1133 阅读 · 0 评论 -
进程间共享互斥所
static pthread_mutex_t *mptr; 将互斥锁放在共享内存。 设置互斥锁的属性为PTHREAD_PROCESS_SHARED,并初始化互斥锁。 void my_lock_init(char *pathname) { int fd; pthread_mutexattr_t mattr; fd=open("/dev/zero", O_RDWR, 0); mp原创 2014-09-28 22:39:25 · 2617 阅读 · 0 评论