自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wenzhuanglin的专栏

ACM之路,毋骄不躁

  • 博客(25)
  • 收藏
  • 关注

原创 hdu 4046 Panda

这题是网络赛的题目,当时还是菜鸟,所以做不出来!这题有两种方法做:第一种是树状数组:效率最高了171ms#include#includeint c[50002];int n;struct node{ char ch1; char ch2; char ch3; bool flag;}map[50002];int lowb

2012-02-01 12:36:30 456

原创 zoj Matrix Searching

这题是一道二维的线段树,有两种方式去建线段树,一种是在母树中再建一棵子树,称为“树中树”,这种是比较耗空间的,当运行速率快!另一种是“四分的思想(矩形树)”,这种是一维的,不怎么耗空间,但是时间慢!!此题我用第一种建树代码如下:#include#includeusing namespace std;#define N 302struct ctree{ i

2012-01-11 09:38:11 367

原创 hdu 1823 Luck and Love

#include #include #include #include using namespace std;const int N=4050;int Max;struct cnode{ int cl,cr; int sum;};struct node{ int l,r; cnode ctree[N];}tree[N];int

2011-12-27 10:46:10 561

原创 poj 1177 Picture

//思路:分别映射到x,y轴,然后分别用一条扫描线对x,y轴扫一遍#include#include#includeusing namespace std;#define N 10005struct line2{ int x1,y1,y2; int flag;}q2[N];struct line1{ int y1,x1,x2; int flag

2011-12-25 13:30:32 326

原创 hdu 1828 Picture

//思路:分别映射到x,y轴,然后分别用一条扫描线对x,y轴扫一遍#include#include#includeusing namespace std;#define N 10005struct line2{ int x1,y1,y2; int flag;}q2[N];struct line1{ int y1,x1,x2; int flag

2011-12-25 12:03:52 570

原创 hdu 1542 Atlantis

#include#includeusing namespace std;#define Max 2005struct lnode//存放线段{ double l,r,h; int d;}line[2*Max];struct node//线段树{ int l,r,flag; double sum;}tree[4*Max];double X[4*

2011-12-08 21:33:59 310

原创 poj 1151 Atlantis

此题是求矩形面积的并,要用到线段树+离散化+扫描线这题很久以前就看了,但是就是理解不了,没去写!看了大牛们的代码来理解,终于搞定了!这题有两种方法第一种是离散化到X轴上建立线段树第二种是离散化到Y轴建立线段树我的就离散化到X轴的!#include#includeusing namespace std;#define Max 2005struct lnod

2011-12-08 21:32:17 280

原创 poj 3667 hotel

搞了一个下午,终于搞定了,这题是线段树的区间合并!以前有做过类似的题目,所以还是有点感觉的!在统计区间的时候,看了一下别人的统计方法!终于写出来的!呵呵!!#include#include#include#define Max 50005struct node{ int l,r; int rsum,lsum;//从最左端连续的区间数,从右端到末端的区间数

2011-12-04 21:59:13 270

原创 poj 2528 Mayor's posters

这题纠结了我两天,终于AC了,在网上说有个bug,普通的离散化会下面这组数据会过不了1 101 46 10普通的离散化结果是2。但是真正的答案是3。这是我的代码,要离散的是边界的编号,而不是区间的编号!#include#includeusing namespace std;const int Max=20005;int ans,m,n;int p

2011-12-03 09:51:28 215

原创 求关键路径、AOE网

终于把关键路径搞定了,以前学习的时候,对什么最早发生时间,最迟反生时间,活动最早开始时间,活动最晚开始时间,都是一塌糊涂的,昨晚宿友的一番解释,终于搞定了,谢谢兵哥!!哈哈!!#include#include#includestruct node{ int x; int v; int next; int info;}enode[10005];int l[10

2011-11-21 10:55:38 579 2

原创 hdu 3074 Multiply game

昨晚做这题的时候,思路很清晰,很快就写完了!!交上去WA了,郁闷啊!!最后想到了int存不了啊,要用int64才行啊,改了,想交,断网了,超级不爽,怀念宽带啊!!!这题也是线段树,求区间的乘积!很水的题!!#include#include#include#define Max 50010struct node{ int l,r; __int64

2011-11-15 12:12:45 325

原创 poj 3368 Frequent values

这题的数据结构比较多,要保存区间内最左边的数与其出现的次数,最右边的数与其出现的次数,还要保存区间出现的次数最多的值!!刚开始题意理解错了,以为求区间出现次数最多的数!郁闷,都怪自己太心急了,写了半天,调试的时候才知道错了!题意只要求出区间的数出现的频率的最大值,这就简单多了!!#include#include#define Max 100010struct node{

2011-11-12 10:49:06 234

原创 poj 3264 Balanced Lineup

这题是求区间的最大值和最小值,保存每个区间的最大值和最小值!很水的一道线段树的题。1A!太爽了,哈哈!!#include#include#define Max 50010struct node{ int l,r; int min; int max;}tree[4*Max];int s[Max];int max,min;void build(i

2011-11-11 21:03:28 205

原创 poj 2777 Count Color

这题是线段覆盖!注意父亲节点性质的传递,如果父亲的颜色被破坏,要传递它的颜色给孩子!!1A,爽歪歪!!keep on!!#include#include#include#define Max 100010struct node{ int l,r; int num;}tree[4*Max];int s[Max];int flag[50];int

2011-11-11 20:24:30 258

原创 hdu 1698 Just a Hook

这题开始的做法是更新到底,果断的tle了,后来想到不能更新到底,可以进行成段的更新!改了改就过了!!爽歪歪!!#include#include#define Max 100010struct node{ int l,r; int num;}tree[4*Max];int s[Max];int max;void build(int l,int r,in

2011-11-11 13:40:41 228

原创 hdu 1754 I Hate It

这题是求区间最大值的线段树!继续刷水题,yeah!keep on!!#include#include#define Max 200010struct node{ int l,r; int num;}tree[4*Max];int s[Max];int max,ans,x,y;void build(int l,int r,int step){

2011-11-11 13:35:16 216

原创 hdu 1166 敌兵布阵

这题是区间求和的线段树!最近在学习线段树!没事就找线段树的水题来刷,哈哈,感觉就是爽歪歪!!#include#include#include#define Max 50010struct node{ int l,r; int num;}tree[4*Max];int s[Max];int max,x,y;void build(int

2011-11-11 13:30:25 217

原创 poj 3468 A Simple Problem with Integers

最近这几天在学习线段树,这是线段树题,不能一步更新到位,这样会超时,只能成段更新!wa了我好几次,增量a要用int64,悲剧啊!!!#include#include#define Max 100010struct node{ int l,r; int num; __int64 a;//要用__int64 __int64 sum;//}tree

2011-11-11 13:21:36 230

原创 最短路径的变相问题

拐弯memory limit: 65536KB    time limit: 667MSaccept: 13    submit: 61DescriptionN*N ( 1 只可以上、下、左、右四个方向行走,并且不能走出这些格子之外。开始和结束

2011-10-13 09:04:09 614

原创 堆的应用

“堆”定义  n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 //小顶堆(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) //大顶堆//ki相当于二叉树的非叶结点,K2i

2011-10-12 11:25:34 413

原创 poj1724 ROADS

题目的意思:给出一定的钱,从1到N,每走一条路径都需要一定的花费,问从1到N在花费不超过的情况下,最短路径。 这题可以用深搜来做,也可以用dijkstra的优先队列来做深搜的方法:#include #include #include int K , N ,

2011-10-06 10:04:35 259

原创 Compound Words

<br />题目:Compound Words<br /> <br />题意:按字典序输入一系列的单词,找出字典里的复合单词,输出复合单词<br /> <br />题目本质:<br />考察的是二分查找,(或字典树)。<br /> <br />题目分析和解题思路:<br /> <br />因为单词是按字典序输的,所以拆分每个单词,进行二分查找,找到则输出对应的单词。<br /> <br />AC代码:<br /><br />#include<stdio.h>#include<string.h>#de

2011-05-27 11:18:00 294

原创 Factoring Large Numbers

<br />题目:Factoring Large Numbers<br />题意:输入一个很大的数,将其质因数分解(因子不包含1),输出每个因子时要先输出四个空格,每个测试用例后要输出一行<br /> <br />题目本质:<br />此题与质因数分解的题目差不多,只是输入的数据很大,用int是远远不够的。<br /> <br />题目分析与解题思路:<br />int不够,所以要用­­__int64来存,这是问题的关键。<br /><br />AC代码:<br /><br /><br />#include

2011-05-24 22:21:00 471

原创 Maze Traversa

<br />题目:Maze Traversa<br /> <br />题意:机器人在一个迷宫里,此迷宫包含走道与墙,机器人可以沿着走道行走,但是不可以穿墙。(走道在输入是用“”表示,墙则用“*”表示)<br />输入机器人的动作指令以“Q”作为测试结束,<br />输出机器人最后在哪个位置,在哪个方向。<br /> <br />题目本质:<br />此题跟做迷宫题目是类似的。<br /> <br />题目分析与解题思路:<br />这道题最关键的是确定它的方向。可以用标记的方法来解决它。AC代码:<br /

2011-05-24 17:17:00 263

原创 快排qsort

  ** 关于快排函数的一些说明 **qsort,包含在stdlib.h头文件里,函数一共四个参数,没返回值.一个典型的qsort的写法如下qsort(s,n,sizeof(s[0]),cmp);其中第一个参数是参与排序的数组名(或者也可以理解成开始排序的地址,因为可以写&s[i]这样的表达式,这个问题下面有说明); 第二个参数是参与排序的元素个数; 第三个三数是单个元素的大小,推荐使用sizeof(s[0])这样的表达式,下面也有说明 :) ;第四个参数就是很多人觉得非常困惑的比较函数啦,关于这个函数,还

2011-05-19 00:25:00 331 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除