- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 HDU 1003 求最大子段和的动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1003算法基本思路:/* * 此题是动态规划找到 a[1……n] 中 最大的字段和 * 令 b[j] 为 在 子段中 k->j 是最大值 k∈ (1,j) * 那么 状态转移方程 为 b[j] = max{ b[j-1]+a[j] , a[j]}; */import
2012-07-31 21:01:47 737
原创 HDU 1028 动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1028"Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says."The second problem is, given an positi
2012-07-31 20:56:51 537
原创 HDU 1051 贪心算法
http://acm.hdu.edu.cn/showproblem.php?pid=1051题目大意:给n根木棍的长度和重量。根据要求求出制作木棍的最短时间。建立第一个木棍需要1分钟,若是接着要制作的木棍重量和长度都比此木棍长就不需要建立的时间,若是没有,则再需要建立时间。求时间最小为多少。解题思路:对木棍的长度和重量进行排序,以长度为首要考虑。排序完后的不一定都是下一根木
2012-07-31 20:48:31 488
原创 HDU 1024动态规划问题
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1024题意 求 M 段 不相交 的 字段的和的最大值 。经典的动态规划用 fk][j] 表示 选择 了 K 段 在 1到 j 内选择的最大值状态转移方程为: f[k][j] = max{ f[k][j-1]+a[j] , max( f[k-1][t] + a[j] ) }i
2012-07-30 15:41:49 456
原创 HDU 1022 堆栈的应用
题目大意:堆栈的应用,较简单不说,贴出java 代码如下注意:我刚开始提交的时候一直是 WA 不知道为什么,一直找不到原因, 算法思想一点都没错,改成 C++ 能 AC 在C++ 中用 while(cin>>X>>Y) 或者 c 用 scanf() != "EOF" 来判断是否到达 文件的末尾 ,而我一开始用 sc,nextInt() != -1 来判断, 不能通过
2012-07-30 15:36:41 458
原创 最大匹配 PKU 2536
http://poj.org/problem?id=2536问题描述及分析:该题较简单,题意是给出m个动物的地点,n个洞,还有速度和时间(其实就是给了距离),问m个动物最多能有几个在规定的时间里一规定的速度躲到洞里逃生。典型的二分图匹配的问题,动物的位置为左边的结点,洞为右边的结点,如果他们的距离小于等于时间×速度,我们就认为他们是连接的,否则认为不连接,我们只要计算最大二分图匹配
2012-07-25 22:08:24 615
原创 Floyd-算法的最短路径保存问题
Floyd 算法思想和编写代码都比较简单,不重复,只是我在理解 Floyd 如何保存找到的各个点之间的最短路劲时候理解了较久时间,做个笔记。Floyd 算法模板如下:void floyd(int n, int **map, int **dis ){// n 为节点个数, **map 为 路径矩阵, dis[i][j] 表示为从 节点 i 到 节点 j 的最短距离 // 初始化 dis
2012-07-24 11:42:24 5912 2
原创 HDU 1010( DFS+奇偶剪枝)
0 1 0 1 0 11 0 1 0 1 00 1 0 1 0 11 0 1 0 1 00 1 0 1 0 1 从 0->1 需要奇数步从 1->0 需要偶数步那么设所在位置 (si,sj) 与 目标位置 (di,dj)如果abs(si-sj)+abs(di-dj)为偶数,则说明 abs(si-sj) 和 abs(di-dj)的奇偶性相同,需要走偶数步如果abs(si-sj)+abs(di-d奇偶
2012-07-24 11:29:37 697
原创 最大网络流PKU1273
题目:大意是 john 想抱住他最爱的三叶草不被水淹没,他要用渠道对水进行引流(引到河流中去),水源为 1 ,河流汇点为 n 为 ,问渠道最多能引流多少水本题的注意点:1:存在重边如:1->2 = 3 1->2 = 4; 1->2 = 5;那么 map[1][2] =3+4+5;开始提交错误了好多次,主要是对于存在重边 没多加思索,定
2012-07-16 09:18:34 617
原创 CVS如何从Sourceforge 上 CheckOUt 源代码
总算是明白怎么操作了:看了很的博客自己整合了一下,以备忘!使用MyEclipse 集成的SVC CheckOut 源代码:比如找到对应的download给出的信息Java代码 1 cvs -d:pserver:[email protected]:/cvsroot/jadasite login 2 cvs -z3 -d:
2012-07-14 11:25:36 1514 1
原创 最短路径的相关问题
最短路径问题1:单源最短路径单源路径的定义:带权值的有向图 G=(V , E) 加权函数 w: E->R 路径 p = {v0 ,v1,v2,vk) 的权值:定义从 u 到 v 的最短路径:Bellman-ford算法BellMan_Ford算法能表面图中是否存在一个从源点出发可达到的权值为负数的回路。松弛技术:在松弛一条边 (u, v),进行测试是
2012-07-09 20:37:36 807
原创 KMP算法:字符串匹配
KMP算法基本思想: 我们在用常规的思想做 字符串匹配时候是 如 对如 字符如果 T = abab 用P = ba 去匹配,常规思路是 看 T 第一个元素 a 是否 和P 的一个 b 匹配 ,匹配的话 查看各自的第二个元素,不匹配 则将 T 串的 第二个元素开始 和 P 的第一个匹配,如此 一步一步 的后移 来进行逐个匹配 这样效率不是很高,对于 KMP 算法,其根本就是对 匹配模式串 P 进
2012-07-09 20:31:06 443
原创 LAC(least common Ancestor)算法
LAC 算法的定义: 对于树 T 的两个节点 u v满足最近公共祖先的 LAC(T,u,v) 存在一顶点 x 满足 x 是 u 和 v 的公共 祖先 ,且 x 的在树中深度最大。LAC 的算法思想是:并查集 + dfs 详细过程代码:(给出详细的注解)#include #include using namespace std; const int
2012-07-09 20:10:57 2255
原创 有向连通分量的Tarjan算法
参考博客:比较详细。http://www.byvoid.com/blog/scc-tarjan/算法伪代码描述:Tarjan(root)1、初始化 def , low[], map[][] 2、stack3、 对 与 root 相连的每个 节点 p 如果 p 在 stack 中 那么 low[root] = min(low[root], def[p]);并且 call
2012-07-09 19:53:44 496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人