算法
文章平均质量分 69
userluoxuan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高精度计算
前几日看了刘汝佳写的原创 2014-07-08 21:10:14 · 864 阅读 · 0 评论 -
动态规划:0-1背包问题(二)
前一章讲到了用二维数组解题,今天加深一个原创 2014-07-08 11:31:14 · 619 阅读 · 0 评论 -
朴素Dijkstra算法模板
朴素Dijkstra不需要用到堆,每次找最小值都得遍历一遍,时间复杂度较高。 点是从编号0到编号n-1的n个点。 以下是模板: int Dijkstra(int a,int b) //a是起点,b是终点 { bool visited[maxn]; // 记录访问点 int pos = a, min, dist[maxn]; // pos是个标记点,标记每次最小边对应的原创 2014-07-27 01:04:52 · 1848 阅读 · 1 评论 -
动态规划:0-1背包问题(一)
作为一个初学者,第一次接受动态规划,原创 2014-07-06 23:56:17 · 649 阅读 · 0 评论 -
Dijkstra + heap
用优先队列实现 模板: struct node { int pos, dist; friend bool operator < (node a, node b) { return a.dist > b.dist; } }; int Dijkstra(int n,int start,int end) { bool visited[maxn]原创 2014-07-27 16:17:28 · 753 阅读 · 0 评论 -
Floyd算法模板
Floyd可以求出任意两点间的最短距离,代码也相对简单,对于稀疏图来说效率也还是不错的,但由于三个for循环导致时间复杂度较高,不适合稠密图。 Floyd算法模板(精简版): void Floyd() { int dist[maxn][maxn]; // dist存储i到j的最短距离 for(int k = 1; k <= n; k++) for(int原创 2014-07-27 12:28:57 · 1263 阅读 · 0 评论 -
树状数组
http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees#prob 树状数组中用的d【】,每个点都有一定的管辖范围; 如d[1]=a[1]; d[2]=a[1]+a[2]; d[3]=a[3]; d[4]=a[1]+a[2]+a[3]+a[4]; 等等; 这样转载 2014-07-28 16:44:29 · 507 阅读 · 0 评论 -
中国剩余定理模板(互质版和非互质版)
互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 Extend_Euclid(int64 a, int64 b, int64&x, int64& y) { if(b==0) {转载 2014-08-08 20:29:18 · 972 阅读 · 0 评论 -
字典树模板
定义一颗字典树: struct Trie { int n; // n可以存储相关有用信息,视情况而定 Trie *next[maxn]; //maxn视字典树中有多少种元素而定 } 定义字典树的根并初始化: Trie *root; void init() { root = (Trie *)malloc(sizeof(Trie)); root ->原创 2014-08-08 15:42:15 · 825 阅读 · 0 评论 -
线段树模板
单点更新,区间求和:转载 2014-08-14 20:21:06 · 604 阅读 · 0 评论
分享