自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流沙-岁月

珍惜黄昏的村庄,珍惜雨后的村庄,万里无云如同我永恒的悲伤。

  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 poj 2886

题意: N个小孩围成一圈,他们被顺时针编号为 1 到 N。每个小孩手中有一个卡片,上面有一个非 0 的数字,游戏从第 K 个小孩开始,他告诉其他小孩他卡片上的数字并离开这个圈,他卡片上的数字 A 表明了下一个离开的小孩,如果 A 是大于 0 的,则下个离开的是左手边第 A 个,如果是小于 0 的,则是右手边的第 A 个小孩。游戏将直到所有小孩都离开,在游戏中,第 p 个离开的小孩将得到 F(p

2015-07-25 17:01:01 382

原创 hdu 4417

给n个数和m次询问,每次询问给三个数字l ,r , h,要求区间[l,r]中小于等于h的数字个数。      这题可以用离线树状数组或划分树做,先讲一下树状数组。      这里要求区间里有多少个数小于等于某个数,联想用树状数组求逆序数的过程,用类似的方法在lgn的时间内求出结果,即对于每一次询问,计算出所有小于等于h的数出现的次数。具体在于先对题目中的条件做一些处理,以便能够使用树状数组

2015-07-25 14:53:18 311

原创 划分树

划分树是一种用线段树作为辅助的数据结构,主要用于在lgn时间内查询区间的第k大数值,其原理是基于快排和归并排序的。       划分树的建树过程可以看做是模拟快排的过程,根节点保存原始数组的信息,同时再另开一个数组保存对原始数组排序好后的信息,然后通过排序好后的数组得到中位数,以中位数为划分依据,将小于中位数的数字划入左孩子,大于中位数的数字划入右孩子,那么等于中位数的数字该如何处理呢?其实既

2015-07-24 15:07:33 392

原创 hdu 5288

题意:给n个数,让你输出所有的f(l,r)之和,1       分析:换个方向思考问题,实质上是在求对第i个数,有多少个区间使得它不能被其它数整除。这样,最后只要把所有数的满足条件的区间数加起来就行了。为此,我们可以开两个数组l[i],r[i],l[i]记录左边离第i个数最近的且是其因子的数的位置,r[i]则记录右边。于是,第i个数满足条件的区间数就为(i-l[i])*(r[i]-i)。 

2015-07-22 16:25:14 407

原创 poj 2352

题意:给出平面上n个点的坐标,每个点有个level值,表示这个点左方,下方以及左下方一共有多少个点(不包括自己),然后让你输出level为0的点有多少个,为1的点有多少个。。。一直输出到level值为n-1的点有多少个。                 注意数据是按y轴坐标递增的顺序给出的,y轴坐标相同时,按x轴递增顺序给出。       分析:练习树状数组的一道不错的题目,要使用“降维”

2015-07-20 10:06:24 355

原创 hdu 1217

题意:有n种货币以及m种两个货币之间的兑换比率,求有没有一种盈利方式,即从一种货币出发,在经过一系列兑换后在兑换回来,其值会增大。      分析:刚开始想的是BFS从一个点出发的所有路径,但感觉这样实在不太好,后来才知道只要用Floyd求两点之间的最长路径,对原来Floyd的代码稍作改动就行了。     代码如下:#include #include #include #incl

2015-07-17 09:23:24 419

原创 poj 1061

由题意很容易得到式子 (n-m)*t+L*k=x-y,其中t代表跳的步数,k表示一个整数,可以看出式子形式与扩展欧几里德相似,令a=(n-m),b=L,x=t,y=k,c=x-y,于是就有a*x+by=c。     代码如下:#include #include #include #include #include #include #include #include #in

2015-07-16 15:25:47 380

原创 poj 3013

题意:KCM 市要造一个大的圣诞树,现在给你含n个点和m条边的图,要你从中选出若干边,从而建成一颗圣诞树。原始图中每个节点都有权值,每条边也有一个权值代表其单位造价。建一颗圣诞树的造价等于树上每个节点的造价之和。每个节点的造价等于从根节点(固定为1)到该结点的最短路径*该节点权值。        分析:理解题意后其实就没什么难度了,就是求最短路径,因为是稀疏图,所以用spfa要更好些。另外,要

2015-07-16 12:21:20 499

转载 二分图匹配

二分图指的是这样一种图,其所有顶点可以分成两个集合X和Y,其中X或Y中任意两个在同一集合中的点都不相连,所有的边关联在两个顶点中,恰好一个属于集合X,另一个属于集合Y。给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。图中包含边数最多的匹配称为图的最大匹配。     二分图的最大匹配有两种求法,第一种是最大流;第二种就是我现在要讲的匈

2015-07-15 17:43:16 386

转载 poj 3667

线段树 题意:有一个线段,从1到n,下面m个操作,操作分两个类型,以1开头的是查询操作,以2开头的是更新操作1 w  表示在总区间内查询一个长度为w的可用区间,并且要最靠左,能找到的话返回这个区间的左端点并占用了这个区间,找不到返回0 好像n=10 , 1 3 查到的最左的长度为3的可用区间就是[1,3],返回1,并且该区间被占用了2 a len , 表示从单位a开

2015-07-14 15:00:25 285

原创 poj 1011 DFS

一道恶心的搜索题,主要是要考虑很多剪枝的情况,不然就只有TLE了。。。。      题意:给n个木棍,每个木棍有一个长度,要求给木棍分组,使得分组后,每个组的木棍长度之和相等,且和要最小。输出这个最小的长度之和。      分析:既然是要使分组后木棍长度之和最小看,能想到的是从最小的长度之和开始枚举,判断这个和是否合法,合法则是所求解,否则继续枚举下一个长度和。当时这个过程中有许多是需要剪

2015-07-13 16:14:08 69

原创 poj 1436

题意:给出平面上一条垂线的坐标y1,y2,x,y1和y2分别代表垂线两个端点的纵坐标值,x代表横纵坐标。以三条线段为一组,要求输出有多少组里任意两条线段都是相互可见的。可见的定义为:有一条水平线段,能够直接的连接两条垂线,中间不经过其它垂线,则称这两条垂线相互可见。    注意:两条垂线仅端点相交,也算是可见的。    分析:实质就是线段树的区间更新问题,是poj2777区间染色问题的延伸

2015-07-11 11:40:46 394

原创 hdu 1698

线段树模板题,注意要用到lazy操作便是了。 代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define

2015-07-04 19:03:08 363

原创 hdu 1443

题意:有k个好人和k个坏人围成一个环,并且从1开始编号,前k个是好人,后k个是坏人。然后从1开始报数,报到m的出去,接着从一个开始重新报数。让你求一个最小的m,使k个坏人没有出去前,好人不能出去。    分析:这道题k               其实和约瑟夫问题类似,也是在有人出去后将环重新标号。枚举m,在每一个m下,每出去一个坏人,重新标号得到一个新环,此时若发现在人数大于k人的情况下

2015-07-01 18:59:56 570

原创 hdu 4542

题意:给一系列操作,每个操作有两个数t和k,t=0表示求k以内的最大反素数;t=1表示求小于k且与k互质的数的个数。     分析:对第一个操作,直接用dfs求反素数就行了;第二个操作素数筛法的思想预先打个表。     代码如下:#include #include #include #include #include #include #include #include

2015-07-01 16:01:33 614

空空如也

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

TA关注的人

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