数据结构
Modiz
这个作者很懒,什么都没留下…
展开
-
Kruskal算法
克鲁斯卡尔(Kruskal)算法(只与边相关)算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。算法过程:1.将图各边按照权值进行排序2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条转载 2013-05-25 09:13:50 · 646 阅读 · 0 评论 -
HDU 4857 逃生。
逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 582 Accepted Submission(s): 156Problem Description糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通原创 2014-07-22 10:05:54 · 839 阅读 · 0 评论 -
大整数组合数求余(lucas定理)
【卢卡斯(Lucas)定理】Lucas定理用来求C(a,b)mod p的值,其中p为素数。数学表达式为:Lucas(a,b,q)=C(a%q,b%q)*Lucas(a/p,b/p,p);Lucas(a,0,q)=0;通过这个定理就可以很方便的把大数的组合转化成小数。但其中还是要求C(a%q,b%q)%p,所以这里引入逆元来求。【定义】若整数a,b,p转载 2014-07-22 22:05:14 · 1267 阅读 · 0 评论 -
最小生成树,继续水~
题目链接:http://openoj.awaysoft.com:8080/judge/contest/contest/view.action?cid=384#problem/I Arctic Network#include #include string.h>#include #include double dis[510][510];int vist[510];struct node {原创 2013-07-29 14:41:06 · 628 阅读 · 0 评论 -
istringstream的用法,解决字符串空格问题
如果一个字符串包含了空格,又想快速分开就可以用这个...#include #include #include using namespace std;int main(){ string s,line; while (getline(cin,line)) { istringstream ss(line); while (ss>>s) cout<<s<<endl; }原创 2013-07-25 09:35:58 · 2502 阅读 · 0 评论 -
湖大训练赛4 Dwarf Tower
Dwarf TowerTime Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:65536KBTotal submit users: 43, Accepted users: 26Problem 12847 : No special judgementProblem description原创 2014-07-27 22:44:11 · 1078 阅读 · 0 评论 -
字典树(trie)模板
喵喵的IDETime Limit: 20000/10000MS (Java/Others)Memory Limit: 512000/256000KB (Java/Others)SubmitStatisticNext ProblemProblem Description喵喵有一个神奇的IDE,这个IDE自带一个cache,还有一个当前编辑区editarea,初始的原创 2014-07-08 16:10:19 · 682 阅读 · 0 评论 -
<模板>poj2031 Building a Space Station(最小生成树)
题目链接:http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=384#problem/D#include #include #include double f[110][110];int vist[110];struct node{ double x,y,z,r;}p[110];doub原创 2013-05-09 14:26:07 · 645 阅读 · 0 评论 -
【模板】链表
#include #include #include typedef struct Node{ int data; struct Node *next;}*LinkList;LinkList L;LinkList InitList(){ int e; scanf("%d",&e); while(e!=-1) { Nod原创 2014-10-03 12:59:07 · 647 阅读 · 0 评论 -
Hdu 3830 Checkers
CheckersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 741 Accepted Submission(s): 218Problem DescriptionLittle X, Little Y原创 2014-11-17 20:36:00 · 781 阅读 · 0 评论 -
Japan 树状数组加逆序数...
哎~又有学到知识...不过是以翘课被抓为代价的...咕~~(╯﹏╰)bView Code #include #include #include string.h>__int64 s;int m;__int64 b[10050];struct node { int x; int y;};node a[1000005];int cmp(const void *a,const void *b原创 2013-07-29 14:40:50 · 716 阅读 · 0 评论 -
2372: 连通块(blocks) 个人认为二维并查集为什么TLE?
题目链接:原创 2014-05-12 23:06:20 · 1236 阅读 · 0 评论 -
树状数组解决敌兵布阵~~
View Code #include #include string.h>int n;long long a[50005],f,b[50005];char s[10];int lowbit (int t){ return t & ( t ^ ( t - 1 ) );}int sum(int end){ int s=0; while (end>0) { s+=b原创 2013-07-29 14:40:48 · 531 阅读 · 0 评论 -
HDU1010 Tempter of the Bone
DFS+奇偶剪枝... 题目刚开始理解错误,一位只要在t时间内到达门就OK,但是却...后来去查了下才知道只能在t时刻到门才能逃出去...倒霉的狗狗#include #include #include #include struct node { int x,y;}p[3];int n,m,t,ff;int vist[100][100];int f[4][2]=原创 2013-06-01 13:34:47 · 544 阅读 · 0 评论 -
纠结的二维数组 Matrix
其实对于Matrix 我很喜欢看的一部电影《黑客帝国》...兴致勃勃的去做,哎~可惜却是我最痛恨的英文...蛋疼...黑客帝国Matrix VS zion 确实很不错...我弄了个电子版程序介绍,不错的哦~有兴趣的朋友可以去我空间日志去看看。http://user.qzone.qq.com/504281906/infocenter废话不多说,哎~最近逻辑混乱了,说话打字颠三倒四的...看了网上一些原创 2013-07-29 14:40:52 · 674 阅读 · 0 评论 -
UVA 10245 The Closest Pair Problem(传说中的分治法)
The Closest Pair ProblemInput: standard inputOutput: standard outputTime Limit: 8 secondsMemory Limit: 32 MB Given a set of points in a two dimensional space, you will have t原创 2013-11-20 21:03:52 · 1047 阅读 · 0 评论 -
数据结构课程设计(约瑟夫环)
课程设计题三:约瑟夫(Joseph)环 设计目的: 1.掌握单向循环链表的建立。2.掌握单向循环链表的操作。设计内容: 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1原创 2013-12-02 20:21:15 · 3889 阅读 · 4 评论 -
SPFA算法之最短路。
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31原创 2014-02-26 21:16:16 · 772 阅读 · 0 评论 -
线段树之操作格子
算法训练 操作格子 时间限制:1.0s 内存限制:256.0MB问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m原创 2014-02-27 18:51:23 · 674 阅读 · 0 评论 -
并查集~
并查集:#include int f[10000];int find(int n){ if (f[n]!=n) f[n]=find(f[n]); return f[n];}int main(){ int i,b,a,t,n,m; while (~scanf("%d%d%d",&m,&n,&t)) { for (i=1;i<=m原创 2013-07-29 14:41:08 · 615 阅读 · 0 评论 -
F - Countries
Description There are n countries at planet X on which Xiao Ming was born. Some countries, which have been sharing fine bilateral relations, form a coalition and thus all of their citizens wil原创 2014-03-31 19:57:58 · 1032 阅读 · 0 评论 -
欧拉函数的递推形式
View Code 1 #include 2 int main() 3 { 4 int n; 5 scanf("%d",&n); 6 int* a=new int[n+1]; 7 for (int i = 1; i 8 for (int i = 2; i 2) a[i] /= 2; 9 for (int i = 3; i 2) 10 if(a[i] == i) 11 {12 for (int原创 2013-07-29 14:40:32 · 1429 阅读 · 0 评论 -
【转】圆形缓冲区(循环buffer)实现
圆形缓冲区的一个有用特性是:当一个数据元素被用掉后,其余数据元素不需要移动其存储位置。相反,一个非圆形缓冲区(例如一个普通的队列)在用掉一个数据元素后,其余数据元素需要向前搬移。换句话说,圆形缓冲区适合实现先进先出缓冲区,而非圆形缓冲区适合后转载 2017-07-24 11:45:09 · 814 阅读 · 0 评论