数据结构
星天93
很多烦恼是我们凭空虚构的,而我们却把它当做真实去承受。
展开
-
hdu1254
这道题搞了蛮久了,叫我下次写不知道能不能写的来,留下代码下次复习复习。#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=10;short map1[MAX][M原创 2012-12-06 18:25:37 · 788 阅读 · 0 评论 -
poj3225
Online JudgeProblem SetAuthorsOnline ContestsUserWeb BoardHome PageF.A.QsStatistical ChartsProblemsSubmit ProblemOnline StatusProb.ID:RegisterUpdate your infoAu原创 2013-05-04 21:52:33 · 2546 阅读 · 1 评论 -
hdu2886之线段树单点更新
DescriptionN children are sitting in a circle to play a game.The children are numbered from 1 to N in clockwise order. Each of them has a card with a non-zero integer on it in his/her hand. The原创 2013-05-19 20:36:39 · 795 阅读 · 0 评论 -
hdu4288之线段树单点更新
Problem Description In mathematics and computer science, an algorithm describes a set of procedures or instructions that define a procedure. The term has become increasing popular since the adven原创 2013-05-21 16:56:08 · 914 阅读 · 0 评论 -
二分查找
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<algorithm>#include<queue>#include<map>#include<...原创 2013-05-21 19:38:13 · 946 阅读 · 0 评论 -
poj3667线段树区间合并
/*本题是线段树区间合并所谓区间合并我理解为父节点的某些值是由左孩子和右孩子的某些值合并而得到的对这题,父节点最大连续可用区间可能是由左孩子最大可用右区间和右孩子的最大可用左区间合并得到的 */#include#include#include#include#include#include#include#include#include#define INF 99999原创 2013-05-08 17:04:21 · 1235 阅读 · 0 评论 -
hdu1686之KMP
Problem DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book:Tout avait Pa原创 2013-05-22 23:01:20 · 1805 阅读 · 0 评论 -
hdu1711之入门KMP
Problem DescriptionGiven two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b原创 2013-05-23 09:01:36 · 831 阅读 · 0 评论 -
hdu2203之KMP入门
亲和串Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5578 Accepted Submission(s): 2518Problem Description人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界原创 2013-05-23 10:32:57 · 2261 阅读 · 0 评论 -
poj2481之线段树单点更新
CowsTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 9813 Accepted: 3214DescriptionFarmer John's cows have discovered that the clover growing along the ridge of the hill (which we c原创 2013-05-28 09:04:32 · 1299 阅读 · 0 评论 -
hdu4521之线段树单点更新
http://acm.hdu.edu.cn/showproblem.php?pid=4521#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=100000+10;原创 2013-05-28 13:46:53 · 997 阅读 · 0 评论 -
hdu1542线段树+离散化+扫描线详解
用struct tree{double l,r,h;int d;tree(){}tree(double x1,double x2,double y,int c):l(x1),r(x2),h(y),d(c){}bool operator return h}}s[MAX];s表示一条线段,分别有线段的左右端点l,r,线段的高h,线段是矩形的上底边还是还是下底边d原创 2013-05-14 21:15:08 · 6644 阅读 · 4 评论 -
poj2828之线段树单点更新
#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=200000+10;int sum[MAX<<2];//表示区间内含有空位的个数int s[MAX][2];//记录刚开原创 2013-05-15 21:37:19 · 757 阅读 · 0 评论 -
数据结构课设之大整数四则运算
四则运算原创 2013-08-01 14:54:47 · 7518 阅读 · 9 评论 -
poj1436之线段树成段更新
Language:DefaultHorizontally Visible SegmentsTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 2925 Accepted: 1105DescriptionThere is a number of di原创 2013-05-29 19:50:14 · 3241 阅读 · 6 评论 -
堆排序详解
堆排序详解选择排序变形之堆排序原创 2016-12-01 12:42:53 · 535 阅读 · 0 评论 -
快速排序详解
图解过程 对于数组s = [2, 1, 3, 0, 4, 5, 8, 7, 1]进行排序 将s[0]取出作为比较值val,则s[0]位置空出 第一步,从数组右边扫描,查询第一个比val小的, 如图1查询到s[8] 将s[8]放入上一步的空格中,则s[8]空出来,如图2 第二步,从数组左边扫描,查询第一个比val大的,如图2查询到s[2] 将s[2]放入上一步的空格原创 2016-12-01 14:59:08 · 359 阅读 · 0 评论 -
计数排序
计数排序 主要是将值作为下标,然后计算有多少小于该值的数,然后再把相应的值放入到相应的位置,如果有相同的值则最先扫描到的放到可能的最后的位置。#include <iostream>#include <cstdio>#include <cstdlib>#include <string>#include <queue>#include <algorithm>#include <map>原创 2016-12-01 17:40:09 · 446 阅读 · 0 评论 -
hdu1828线段树+扫描线
http://acm.hdu.edu.cn/showproblem.php?pid=1828(矩形求周长类似矩形合并求面积,只是多了需要统计竖边的个数,对于每次求到的下底边长还要增加目前底边与下一条底边之间的竖边总长)1,n个矩形有2*n条线段,按从小到大排列,如上图得到的线段顺序2:开始扫描第一条线段,得到总底边长sum为a这部分,得到竖边个数segnum=2,(每增加一原创 2013-05-15 18:08:03 · 2804 阅读 · 2 评论 -
hdu3038之并查集
这题大意是给出多个区间的和,判断数据矛盾的区间有几个,比方说[1,5] = 10 ,[6.10]= 10, [1, 10]= 30,这明显第三个与前面两个矛盾。 #include#include#include#include#include#include#include#include#include#define INF 99999999using namespa原创 2013-04-20 21:02:24 · 648 阅读 · 0 评论 -
hdu1426一道很有意思的题目:数独
Problem Description自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视。据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品———HDU免费七日游外加lcy亲笔签名以及同hdu acm team合影留念的机会。所以全球人民前仆后继,为了奖品日夜训练茶饭不思。当然也包括初学者原创 2012-12-06 18:22:00 · 4536 阅读 · 0 评论 -
hdu2612简单BFS
本以为用BFS会超时,没想到竟然过了http://acm.hdu.edu.cn/showproblem.php?pid=2612#include#include#include#include#include#include#include#include#include#include#define INF 999999999using namespac原创 2013-02-25 21:01:06 · 824 阅读 · 0 评论 -
HDU2665之划分树
第一种#include#include#include#include#include#include#include#include#include#define INF 999999999using namespace std;const int MAX=100001;//s表示原数组,tree表示第i层元素序列,sum表示第i层L~j分到左子树的元素个数原创 2013-02-28 18:49:11 · 1093 阅读 · 1 评论 -
hdu1754之线段树
代码中详细注释 #include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=200000+10;int sum[MAX<<2];//sum表示第i个节点表示的区间的最大值原创 2013-04-23 20:51:30 · 723 阅读 · 0 评论 -
hdu1166之线段树
基础线段树模版,但是蛮经典的 #include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=50000+10;int sum[MAX<<2];//sum表示某个节点的区间和原创 2013-04-23 20:17:16 · 709 阅读 · 0 评论 -
hdu3367之并查集
PseudoforestTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1026 Accepted Submission(s): 395Problem DescriptionIn graph theory原创 2013-04-22 16:28:57 · 896 阅读 · 0 评论 -
hdu1394之线段树详解
详细思路转载一位大神:http://wenku.baidu.com/view/6e02b7492e3f5727a5e9623f.html感觉这题好经典,喜欢在代码中注释而不是单纯的说思路,所以代码中详细注释了自己的理解,相信能更好的理解思路和代码 #include#include#include#include#include#include#include#includ原创 2013-04-24 20:07:39 · 1008 阅读 · 0 评论 -
hdu1698之线段树
详解请看代码注释 #include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=100000+10;//sum表示区间left~right的和,mark表示区间的是否已经更新(原创 2013-04-24 22:32:48 · 830 阅读 · 0 评论 -
poj3468之线段树
#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=100000+10;__int64 sum[MAX<<2],mark[MAX<<2];//sum表示区间和,mark表示父原创 2013-04-25 20:32:13 · 1593 阅读 · 0 评论 -
hdu3047之并查集
#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=50000+10;const int mod=300;int father[MAX],dist[MAX],sum;v原创 2013-04-19 22:50:02 · 678 阅读 · 0 评论 -
hdu2473之并查集
思路:每次删除一个点a,并不把a从当前集合删除,而是用一个数组node[a]代表a对应的点,所以每次删除a后,node[a]=++n,即开辟一个新的点作为a对应的点,这样就不会影响a这个集合http://acm.hdu.edu.cn/showproblem.php?pid=2473#include#include#include#include#include#include#原创 2013-04-19 12:02:29 · 970 阅读 · 0 评论 -
hdu3635之并查集
#include#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=10000+10;/*father[i]表示i节点的父亲,rank[i]i所在集合的元素sum转换的次原创 2013-04-18 22:51:21 · 767 阅读 · 0 评论 -
hdu3461之并查集
Code LockTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 722 Accepted Submission(s): 245Problem DescriptionA lock you use has原创 2013-04-21 21:01:20 · 869 阅读 · 0 评论 -
hdu1598之并查集
find the most comfortable roadTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2014 Accepted Submission(s): 844Problem Description原创 2013-04-21 15:22:49 · 726 阅读 · 0 评论 -
poj2528之线段树+离散化
#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;//类似于在一个块上涂颜色,问最后能看到几种颜色const int MAX=10000+10;int hash[MAX*4];//离散化后的数组,所原创 2013-04-28 19:07:33 · 752 阅读 · 0 评论 -
hdu2818之并查集
#include#include#include#include#include#include#include#include#include#define INF 99999999using namespace std;const int MAX=30000+10;int father[MAX],rank[MAX],sum[MAX];//sum[i]表示i下面的积木个原创 2013-04-21 22:22:45 · 1360 阅读 · 2 评论 -
hdu1829并查集
A Bug's Life Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5567 Accepted Submission(s): 1828Problem DescriptionBackground Pr原创 2013-04-17 13:32:27 · 1214 阅读 · 0 评论 -
基数排序
#include <iostream>#include <cstdio>#include <cstdlib>#include <string>#include <queue>#include <algorithm>#include <map>#include <iomanip>#define INF 999999999using namespace std;const int MA原创 2016-12-02 16:26:17 · 393 阅读 · 0 评论