算法研究
文章平均质量分 62
fangyi86
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
判断单链表是否存在环,判断两个链表是否相交问题详解(转载)
摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast转载 2010-10-14 20:30:00 · 435 阅读 · 0 评论 -
ZJU 1990 Subway tree systems - 树的最小表示
题目大意:初始时站在树的根节点,若朝着远离根的方向走,记录“0”,接近根的方向走记录“1”。并且树的每一条边只能来回走一次(即向下和返回)。一个合法的01序列可以描述出一棵树的形态。现在给出两个合法的01序列,判断两棵树是否同构。分析:由于根节点确定,若两棵树同构,无非就是把子树的位置交换了一下。很自然的想法就是:将树的子树按照某种规则进行排序,若排序之后两个字符串相等,则同构;否则不同构。现在来分析一下01序列,可以看出,当一个串的“0”和“1”个数相等时,恰好就是一棵子树。例如:001001110100转载 2010-10-14 20:32:00 · 517 阅读 · 0 评论 -
请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
#include #include using namespace std;#define Cmp(x,y) compare(x,y)int compare(int a,int b){ int i=a-b; while((i^1)&&(i^-1)) { i>>=1; } return i;}int main(){ int c; c = Cmp(25,14); c = Cmp(5,14); cout return 0;}原创 2010-10-16 22:01:00 · 639 阅读 · 0 评论 -
求质数
AlgorithmA prime number is a natural number which has exactly two distinct natural number divisors: 1and itself.To find all the prime numbers less than or equal to a given integer n by Eratosthenes' method:Create a list of consecutive integers from two to转载 2010-10-20 15:46:00 · 529 阅读 · 0 评论 -
Broken Necklace
You have a necklace of N red, white, or blue beads (3转载 2010-10-21 11:11:00 · 450 阅读 · 0 评论 -
最大子矩阵问题
最大子矩阵问题:问题描述:(具体见http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1050) 给定一个n*n(0Example: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其中左上角的子矩阵: 9 2 -4 1 -1 8 此子矩阵的值为9+2+(-4)+1+(-1)+8=15。 我们首先想到的方法就是穷举一个矩阵的所有子矩阵,然而一个n*n的矩阵的子矩阵的个数当n比较大时时一个很大的数转载 2010-10-25 12:43:00 · 599 阅读 · 0 评论 -
求0,1矩阵的最大连续全1块(可以非规则)
求0,1矩阵的最大连续全1块(con)给一个的0,1矩阵,求它的面积最大的全1子块。 要求时间。 ------------------------------------------------------------------------ 对矩阵做三次扫描, 扫描的次序都是从左到右,从上到下.第一遍将所有为1的元素,依次标一个值,这个值从1开始 例如:0 0 0 0 0 0 0 0 0 00 1 1 0 0 0 1 2 0 00 1 0 0 0 标注成这样 0 3 0 0 00 0 0 1 0 0 0转载 2010-10-25 13:37:00 · 3013 阅读 · 0 评论 -
最大全1子矩阵
<br />可以借鉴“最大子矩阵和问题”的解题思路,但是时间复杂度为O(M*N*min(M,N))<br /> <br />把矩阵中的0用一个很大的负数来替代,这样就转化为“最大子矩阵和问题”<br /> <br />下面我们来分析一下最大子段和的子结构,令b[j]表示从a[0]~a[j]的最大子段和,b[j]的当前值只有两种情况,(1) 最大子段一直连续到a[j] (2) 以a[j]为起点的子段,不知有没有读者注意到还有一种情况,那就是最大字段没有包含a[j],如果没有包含a[j]的话,那么在算b[j]转载 2010-10-25 14:22:00 · 1492 阅读 · 0 评论 -
C代码优化方案
UML软件工程组织火龙果软件工程技术中心C代码优化方案 2008-11-10 作者:王全明 来源:csdn目录__ 2C代码优化方案__ 41、选择合适的算法和数据结构__ 42、使用尽量小的数据类型__ 53、减少运算的强度__ 5(1)、查表(游戏程序员必修课)_ 5(2)、求余运算__ 6(3)、平方运算__ 6(4)、用移位实现乘除法运算__ 6(5)、避免不必要的整数除法__ 8(6)、使用增量和减量操作符__ 8(7)、使用复合赋值表达式__ 8(8)、提取公共的子表达式__ 94、结构体成转载 2010-11-01 22:20:00 · 1129 阅读 · 0 评论
分享