文章分类 - 数据结构/算法分析
动态规划思想:石子合并问题
摘要:开始以为通过贪心算法可能很快解决问题,可是是行不通的。 首先我们可以把这么堆石子看成一列 我们假如5堆的石子,其中石子数分别为7,6,5,7,100 •按照贪心法,合并的过程如下: 每次合并得分 第一次合并 7 6 5 7 100 =11 第二次合并 7 11 7 100=18 第三次合并 18 7 100 =25 第四次合并 25 100 =125 总得分=11+18+25+125=179 •另一种合并方案 每次合并得分 第一次合并 7 6 5 7 100 -13 第二次合并 13 5 7 100-12 第三次合并 13 12 100 -25 第四次合
阅读全文
贪心算法求解之:Google Book
摘要:描述InputOutputSample InputSample Output此算法并不是最优解法,其中的空间浪费与时间浪费严重,不过优点是目标明确。
阅读全文
利用动态规划思想解题(1)
摘要:题目要求:Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the s...
阅读全文
加油站问题分析
摘要:描述InputOutputSample InputSample Output 问题的分析:由于汽车由起始点到终点方向开,我们可以假设,通过一趟加油,使其能够最大限度地完成这趟油的使命,那么每加满一次油,都能够最大限度地利用这一趟油,那么我们所走过的路程就越长,离终点就越接近,那么自然加油的次数就最少了。
阅读全文
通过·归并(合并)排序·求逆序对个数
摘要:题目要求:利用归并排序求得排序过程中出现逆序对的个数。如输入数组长度为5的序列,分别为9·1·0·5·4,得到逆序对的个数为6.可通过以下代码得到结果。(可是POJ不通过,这点我搞不明白,可否有高手看看代码处是否出错,不胜感谢!)[代码]Input:591054312310216579111238211110Output: 1|6 2|0 3...
阅读全文
函数时间复杂度的计算详解(转自CSDN)
摘要:O(1)Temp=i;i=j;j=temp; 以上三条单个语句的频度均为1,该程序段的执行时间是一个与问题规模n无关的常数。算法的时间复杂度为常数阶,记作T(n)=O(1)。如果算法的执行时 间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)。 O(n^2)2.1. 交换i和j的内容 sum=0; (一次) for(i=1;i...
阅读全文
折半插入排序-数据结构
摘要:#include<stdio.h>#define MAXSIZE 20 //顺序表的最大长度#define LT(a,b) ((a)< (b))typedef int KeyType;typedef struct{KeyType key; //关键字项//InfoType otherinfo;//其他数据项}RedType; //记录类型typedef struct{RedTyp...
阅读全文
冒泡排序算法-数据结构
摘要:#include<stdio.h>#define MAXSIZE 20 / /顺序表的最大长度#define LT(a,b) ((a)< (b))typedef int KeyType;typedef struct{KeyType key; //关键字项//InfoType otherinfo; //其他数据项}RedType; //记录类型typedef struct{RedT...
阅读全文
1979:Red and Black
摘要:題目連接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1979 1979:Red and Black具体要求:输入相应的格子的数目,并且标记每个格子的颜色,当遇到黑色的格子时可以踩上,当遇到红色的格子时不能踩上,要求输出从一个起始点出发能够踩到的黑色格子数。算法思想:1,可以根据图的深度优先搜索,计算并输出通过深度搜索所通过的节点数,即相应的格子数目。...
阅读全文
1125:Stockbroker Grapevine
摘要:題目連接:http://acm.pku.edu.cn/JudgeOnline/problem?id=11251125:Stockbroker Grapevine具体要求: 输入n个经纪人,第i个经纪人分别认识那几个其他的经纪人,而且知道这个经纪人与其他认识的经纪人交流信息所需要的时间。这时有一个虚假的消息要从其中一个经纪人传播出去,要求输出从哪个经纪人出发能够以最短的时间就能使每个人都知道这个虚假...
阅读全文
图的深度优先搜索及广度优先搜索
摘要:题目地址http://acm.pku.edu.cn/JudgeOnline/problem?id=1979 1979:Red and Black具体要求:输入相应的格子的数目,并且标记每个格子的颜色,当遇到黑色的格子时可以踩上,当遇到红色的格子时不能踩上,要求输出从一个起始点出发能够踩到的黑色格子数。算法思想:1, 可以根据图的深度优先搜索,计算并输出通过深度搜索所通过的节点数,即相应的格子数目。...
阅读全文
pku_1915_Knight Moves
摘要:相应的问题所在:http://acm.pku.edu.cn/JudgeOnline/problem?id=1915C语言版实现算法如下:#include<stdio.h>int tu[1000][1000];int head,tail,count,m,flag=0,EndX,EndY;struct save {int x;int y;}data[900000]; void DFS( i...
阅读全文
pku_1251_Jungle Roads
摘要:题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1251相应C代码:#include<stdio.h>#include<stdlib.h>main(){char x,y;int i,j,m,n,c,k,min,dex,u,t,tol=0; //x,y记录坐标 min记录最小弧int arc[100][100];int num1...
阅读全文
浙公网安备 33010602011771号