- 博客(15)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 邻接表的数组实现
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 51 4 94 3 81 2 52 4 61 3 7复制代码 第一行两个整数n m。n表示顶
2016-03-31 12:36:39 870 1
原创 HDUoj4857逃生 拓扑排序
逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3346 Accepted Submission(s): 953Problem Description糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的
2016-03-29 16:46:40 417
原创 优先队列
#include #include #include#include using namespace std;struct node{ int a,b; friend bool operator <(node x,node y) { return x.a>y.a; //如果为 >优先级小的先出队列 反之 }};priority_q
2016-03-29 12:13:06 341
原创 hdu 1754 I Hate It 线段树
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 58191 Accepted Submission(s): 22680Problem Description很多学校流行一种比较的习惯。老师们很
2016-03-25 21:27:30 317
原创 HDU 1711(KMP)字符串匹配
链接 HDU 1711 Number SequenceKMP 算法 我以自己理解写的,写的不对,不明白的地方海王子出来,一起共同学习;字符串匹配 就是KMP,一般思想,用一个for循环找开头 如果开头一样进入第二个for循环;这样统计 直观 容易理解。但是时间复杂度比较长。所以就有KMP 这个算法了 KMP 大体思想因为在上一个方法之中,
2016-03-22 17:53:41 383
原创 RMQ算法
对于这个算法,是求区间里面的最大最小值,一般思想在区间for循环一遍找,但是访问区间次数多的话,且区间长度太长,这样时间复杂度都会太长,我认为就是做了一个预处理使得访问时间大大减短。 怎么才能够得到区间的最值? 所以,如预处理区间的最大值,最小值也是类似的。用一个F二维数组F[ i ][ j ] 表示区间以 i 为起点长度为2^j次方 长度的区间的最大值。 这样处理了加入需要
2016-03-22 12:05:12 346
转载 背包问题(背包九讲)
背包问题九讲version 1.1 build 20071115前言 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附录一:USACO中的背包问题 附录二:背包问题的搜
2016-03-16 21:05:16 1252
转载 位运算巧妙用法
1. (1 1. 如果乘上一个2的幂,可以改用左移运算(Left Shift) 加速 300%[cpp] view plain copyx = x * 2; x = x * 64; //改为: x = x // 2 = 2^1 x = x // 64 = 2^6 2. 如果除上一个 2
2016-03-13 20:37:21 576 4
原创 树状数组核心代码
int lowbit(int x){ return x&-x;}int add(int pos,int a){ while (pos<=n) { c[pos]+=a; pos+=lowbit(pos); } return 0;}int sum(int pos){ int ans=0; while (pos>0) { ans+=c[pos]; pos
2016-03-13 11:19:38 537
原创 我们要学习的算法
1.排序桶排序● 冒泡排序● 快速排序● 栈、队列、链表● 枚举● 数的全排列● 万能的搜索● 广度优先搜索● 图的遍历● 深度和广度优先究竟是指啥● 图的深度优先遍历● 图的广度优先遍历 最短路径● 只有五行的算法——Floyd-Warshall● Dijkstra算法 ● Bellman-Ford——解决
2016-03-11 17:02:31 641
转载 Floyd算法(弗洛伊德算法) 百度百科
状态转移方程其状态转移方程如下: map[i,j]:=min{map[i,k]+map[k,j],map[i,j]};map[i,j]表示i到j的最短距离,K是穷举i,j的断点,map[n,n]初值应该为0,或者按照题目意思来做。当然,如果这条路没有通的话,还必须特殊处理,比如没有map[i,k]这条路。时间复杂度与空间复杂度编辑
2016-03-09 21:15:48 1765
原创 Constructing Roads In JGShining's Kingdom
点击打开该题目链接Constructing Roads In JGShining's KingdomTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20916 Accepted Submission(s):
2016-03-05 20:50:33 487 1
原创 搜索算法 pots
题目链接 点击打开链接PotsTime Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64uSubmit StatusDescriptionYou are given two pots, having the volu
2016-03-05 19:17:23 555
空空如也
Count primes ---ACM 题目
2016-09-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人