上一页 1 2 3 4 5 6 7 8 9 ··· 57 下一页

2011年8月24日

二叉排序树

摘要: #include <iostream>using namespace std;typedef int ElementType;struct BstNode { ElementType data; BstNode *lch; BstNode *rch;};class BstTree{public: BstNode *root;public: BstTree(){root=NULL;} void creat(); void NorecCreat(); //非递归创建二叉排序树 void inorder(){inorder(root);} v... 阅读全文

posted @ 2011-08-24 16:24 sysu_mjc 阅读(177) 评论(0) 推荐(0) 编辑

差分约束系统

摘要: //差分约束系统//定理:给定一差分约束系统Ax≤b,设G=(V,E)为其相应的约束图。//如果G不包含负权回路,即权值之和小于0 的环路。//那么x=( d(v0,v1) , d(v0,v2) , … , d(v0,vn) )是此系统的一可行解,//其中d(v0,vi)是约束图中v0到vi的最短路径(i=1,2,…,n)。//如果G包含负权回路,那么此系统不存在可行解。//所以可以用Bellman-Ford算法解决差分约束系统。//求解差分约束系统,可以转化成图论的单源最短路径问题。//观察xj-xi<=bk,会发现它类似最短路中的三角不等式d[v]<=d[u]+w[u,v]// 阅读全文

posted @ 2011-08-24 16:22 sysu_mjc 阅读(214) 评论(0) 推荐(0) 编辑

trie树

摘要: // poj4 3630 Phone List// 题意: 给一组互不相同的号码,问其中是否有号码是另一号码的前缀#include <iostream> // trie树using namespace std ;struct Node { Node *next[10]; //数字0-9 int vis; //记录该节点所代表的号码是否有被访问过}table[100000];Node *root;int cur;void init(){ //trie树的根结点不包含字符信息 root=&table[0]; f... 阅读全文

posted @ 2011-08-24 16:20 sysu_mjc 阅读(152) 评论(0) 推荐(0) 编辑

STL堆之四

摘要: #include<iostream> //自定义比较函数#include<algorithm>#include<cstring>#include<stdio.h>using namespace std;#define maxn 100010struct node{ char name[11]; int mark;}heap[2][maxn]; //heap[0],heap[1]分别表示大顶堆和小顶堆bool myless(const node& a,const node& b) //大顶堆比较函数{ r... 阅读全文

posted @ 2011-08-24 16:15 sysu_mjc 阅读(168) 评论(0) 推荐(0) 编辑

STL堆之五

摘要: //有一些随时更新的数据,求排序后在中间的那个数据//可以把数据分成两半,使用两个堆,最大堆和最小堆,一半比中间值小,一半比中间值大,//插入数据时,只需要和前一半(最大堆)的最大值和后一半(最小堆)的最小值比较即可//必须保证第1个堆(大顶堆)的堆顶结点要小于第2个堆(小顶堆)的堆顶结点,//这样小顶堆的结点就全部大于大顶堆的结点,且小顶堆的结点数只能与大顶堆的结点数相等或者比它大 1 //这样任何时候,如果两堆大小相等,则说明是偶数,不存在中间结点//如果小顶堆的结点个数大于大顶堆(>1),则中间结点就是小顶堆的堆顶结点#include<iostream> //sicil 阅读全文

posted @ 2011-08-24 16:15 sysu_mjc 阅读(238) 评论(0) 推荐(0) 编辑

STL堆之二

摘要: #include <iostream>#include <algorithm>#include <vector>#include<functional>using namespace std;int main () { int myints[] = {10,20,30,5,15}; vector<int> v(myints,myints+sizeof(myints)/sizeof(myints[0])); vector<int>::iterator ite; //heap各种操作的效果是对参数指向的vector容器里储存的 阅读全文

posted @ 2011-08-24 16:14 sysu_mjc 阅读(336) 评论(0) 推荐(0) 编辑

STL堆之三

摘要: //如果一开始用greater,则之后调用的push_heap,pop_heap,sort_heap都要带greater,否则出现异常:invalid heap#include<iostream>#include<algorithm>#include<vector>#include<functional>using namespace std;void print_ivec(vector<int>::iterator begin, vector<int>::iterator end){ for(;begin != end; 阅读全文

posted @ 2011-08-24 16:14 sysu_mjc 阅读(142) 评论(0) 推荐(0) 编辑

SPFA算法之四

摘要: //poj 3013 Big Christmas Tree#include<iostream> //邻接链表实现单源最短路SPFA #include<deque>using namespace std;#define maxn 50002const __int64 inf=(__int64)1<<63-1; //inf=4611686018427387904 //(1)#define inf (1<<63)-1 (2)const __int64 inf=(__int64)(1<<63)-1; (3)const __int64 inf= 阅读全文

posted @ 2011-08-24 16:11 sysu_mjc 阅读(162) 评论(0) 推荐(0) 编辑

SPFA算法之三

摘要: //poj 3013 Big Christmas Tree#include<iostream> #include<deque>using namespace std;#define maxn 50002const __int64 inf=(__int64)1<<63-1; struct Edge { int v; int weight; int next;}Vertex[4*maxn]; int head[maxn],curr;int cases,v,e,i,j,edge[maxn][3... 阅读全文

posted @ 2011-08-24 16:10 sysu_mjc 阅读(184) 评论(0) 推荐(0) 编辑

SPFA算法之二

摘要: //当题目中并没有明确的唯一源点,就需要添加超级源点,它到各顶点都可达,//因为如果图是非连通的,那么有些顶点将一直得不到检查,//解决方法就是在初始队列时,把所有的顶点都压入队列里#include <iostream> //poj 2983 差分约束系统,使用并查集#include <queue>using namespace std;const int MAX = 500000;const int INF = 1000000000;const int N = 2000;struct Node{ int v; int cost; int next;};Node... 阅读全文

posted @ 2011-08-24 16:08 sysu_mjc 阅读(161) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 57 下一页

导航