自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 HDU 4417 Super Mario 树状数组

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给一些数,数中有重复的。还有一些询问,问的是[L,R] 区间内有多少个数小于h,有多次询问。思路:普通方法的话肯定会超时,题目问[L,R]区间内小于h的数有多少个,则可以算出cal(R) 和 cal(L - 1), 两者相减就是答案。这类问题和求逆序数的问题非常类似,即求一个数前面有

2012-09-30 16:10:03 5720

原创 HDU 4000 Fruit Ninja 树状数组

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4000题意:给你一个1到n的排列,让求满足posx 思路:树状数组的题目。首先我们可以得到所有满足题目条件的组数为x 代码:#include #include #include using namespace std;const int N = 100010;const __in

2012-09-30 10:00:53 2983

原创 HDU 3015 Disharmony Trees 树状数组

来源:http://acm.hdu.edu.cn/showproblem.php?pid=3015题意:有一些树,这些树的高度和位置给出。现在高度和位置都按从小到大排序,对应一个新的rank,任意两棵树的值为min(高度的rank) * abs(位置差的绝对值)。问所有任意两棵树的值的和是多少。思路:首先对高度和位置分别离散,接下来就是树状数组 了,和poj 1990是一样的。代码:

2012-09-29 21:38:08 1439

原创 POJ 2029 Get Many Persimmon Trees 二维树状数组

来源:http://poj.org/problem?id=2029题意:有一个矩阵,矩阵里面有一些位置有树,矩阵的宽和高都给了。现在给你一个w*h的小矩阵,问用这个小矩阵最多能得到多少树。思路:暴力枚举的话肯定超时,所以应该想其它的方法。很容易转化到二维树状数组上,然后就是裸的二维树状数组了,一个插点问线的问题。代码:#include #include #include #i

2012-09-28 09:11:56 915

原创 POJ 1990 MooFest 树状数组

来源:http://poj.org/problem?id=1990题意:有一些牛,这些牛有一个听力值v[i]和一个坐标值pos[i],任意两只牛交流所需要的值为max(v[i],v[j]) * abs(pos[i] - pos[j]),求任意两只牛之间交流所需要的值总和为多少。思路:如果暴力的话,因为n 太大(200000),所以肯定超时,所以我们需要想其它的方法。考虑将牛按v值从小到大排

2012-09-27 21:50:51 848

原创 HDU 3874 Necklace 树状数组的应用

来源:http://acm.hdu.edu.cn/showproblem.php?pid=3874题意:有一些数,这些数中有重复的,问从[L,R]区间的和是多少,重复的数只能算一次。思路:因为有多次询问,所以暴力的话肯定超时,又因为是区间求和问题,所以可以考虑用树状数组求。树状数组可以解决没有重复数的情况,因此这道题我们可以特殊处理一下。首先我们可以把所有的询问都存起来,然后对询问按右端点

2012-09-24 09:07:11 1263

原创 HDU 3584 Cube 三维树状数组

来源:http://acm.hdu.edu.cn/showproblem.php?pid=3584题意:有一个立方体,初始每个格子都为0,可以对格子操作,把0变为1,把1变为0,最后询问某个格子最后的值 是多少。思路:三维树状数组的应用,插线问点。代码:#include #include #include using namespace std;const int N

2012-09-21 08:51:35 1295

原创 HDU 2492 Ping pong 树状数组求逆序数

来源:http://acm.hdu.edu.cn/showproblem.php?pid=2492题意:给你一些不同数,求满足a 思路:用树状数组求逆序数,和CF上的一道题目非常像,http://blog.csdn.net/wmn_wmn/article/details/7778772代码:#include #include #include using namespac

2012-09-19 10:06:01 835

原创 POJ 1195 Mobile phones 二维树状数组

来源:http://poj.org/problem?id=1195题意:有一个N * N广场,广场里面有一些手机,某个格子是可以改变的,增加或者减少,问一个小矩阵内有多少个手机。思路 :裸的二维树状数组。代码:#include #include #include using namespace std;typedef long long LL;const int N

2012-09-18 11:29:30 1052 1

原创 POJ 3321 Apple Tree 树状数组

来源:http://poj.org/problem?id=3321题意:有一棵树,树上有一些叉,每个叉上刚开始都有一个苹果,对每个叉可以有两种操作,若刚开始有苹果,则变为没苹果,若刚开始没苹果,则变为有一个苹果。有多次操作,有多次询问,对于每次询问,回答该结点以及该结点以上有多少个苹果。思路:树状数组的好题。首先可以dfs树,为每个结点映射一个区间,然后就是树状数组的裸题了。树状数组不仅可

2012-09-18 08:54:18 1109

原创 POJ 2181 Cows 树状数组

来源:http://poj.org/problem?id=2481题意:有一些牛,这些牛有一个属性值,这个属性值的范围给出,为si,ei,若si = ej && ei - si > ej - sj,则称牛i是比牛j强壮的。问对于每只牛,有多少只牛比其强壮。思路:树状数组,可以对e按升序排序,这样在j前面的e值一定比j的e值大,因此只需要考虑s值即可,就可以用树状数组了。这道题也从根本上改变

2012-09-17 14:04:45 659

原创 POJ 3067 Japan 树状数组

来源:http://poj.org/problem?id=3067题意:两边都有一些城市,从上到下排列,有些城市之间有路,路与路之间会形成交点,问最后会形成多少个交点。思路:首先可以把有联系的城市转化成平面上的点,比如说1 和 2 之间有一条路,则代表有一个点,坐标为(1,2)。转化之后可以用树状数组做,可以发现最后的结果其实和所给的顺序无关,因此我们可以按y轴从小到大排序,若y轴相等,则

2012-09-15 11:22:01 708

原创 POJ 3735 Training little cats 矩阵二分幂 + 矩阵优化

来源:http://poj.org/problem?id=3735题意:有一些猫,这些猫可以获得一些花生,有三种操作:某只猫可以获得一个花生;某只猫花生变为0;两只猫的花生数目交换。问经过k次交换,且k次交换循环m次之后,每只猫有多少花生。思路:因为猫的数量不多(矩阵乘法优化: for(int i = 0; i <= n; ++i){ for(int j = 0; j <=

2012-09-13 21:06:10 801

原创 POJ 3737 UmBasketella 三分

来源:http://poj.org/problem?id=3737题意:给你一个圆锥,圆锥面积给出,问你圆锥的最大体积是多少。思路:枚举底面圆半径,算圆锥的体积。可以列出表达式,满足三分,因此可以三分枚举底面圆半径。代码:#include #include #include #include using namespace std;const double pi =

2012-09-12 21:02:51 1172

原创 POJ 2153 Rank List map的应用

来源:http://poj.org/problem?id=2153题意:一个人有一些考试,每次得到一个分数,问经过i次考试后总分排名第几。思路:map的应用,一一对应即可。代码:#include #include #include #include #include #include using namespace std;const int N = 10010;

2012-09-12 14:03:09 1286

原创 POJ 1505 Copying Books 二分 + 贪心

来源:http://poj.org/problem?id=1505题意:给一些书,这些书有不同的页数,让把这些书分成k份,必须是连续的,问这些份中页数和的最大值最小是多少。思路:首先可以用二分枚举出最大的最小值,然后输出的时候从后向前判断输出代码:#include #include #include #include #include using namespace st

2012-09-11 18:18:27 2135

原创 HDU 4282 A very hard mathematic problem 二分

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4282题意:给出一个数n,问x^z + y^z + x*y*z = n有多少这样的x y z,其中y > x,z > 1,x,y,z都是正数。思路:注意到z最大为31,x最大为50000,因此可以枚举x,z,二分判断y即可。代码:#include #include #include #

2012-09-11 09:49:54 1002

原创 HDU 4278 Faulty Odometer 进制转化问题

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4278题意:新定义一种数,这种数字没有3 和 8 ,给你一个这样的数,问其对应的实际的数是多少?思路:其实就是一个进制转化问题,不过新数字对应的并不是传统上的数字。代码:#include #include #include #include using namespace std;

2012-09-11 08:48:59 814

原创 HDU 4287 Intelligent IME map的应用

来源:http://acm.hdu.edu.cn/showproblem.php?pid=4287题意:首先给你一些由数字组成的串,数字分别对应于手机键盘上的一些字母。然后给一些字符串,问每个字符串能对应几个上面出现过的数字串。思路:用map可以解决。网络赛最简单的题了。代码:#include #include #include #include #include usi

2012-09-10 21:15:38 1008

原创 POJ 1064 Cable master 浮点数二分

来源:http://poj.org/problem?id=1064题意:有一些棍子,这些棍子的长度已知,现在要将这些棍子分成m段,问分的棍子最长是多少。思路:二分枚举答案,注意精度控制。浮点数的二分和整数的二分还不太一样,需要注意一下。代码:#include #include #include using namespace std;double eps = 1e-5;

2012-09-06 14:47:13 1384

原创 POJ 3104 Drying 二分

来源:http://poj.org/problem?id=3104题意:有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k滴水。每件衣服没分钟可以自动蒸发掉一滴水,用烘干机烘衣服时不蒸发。问最少需要多少时间能烘干所有的衣服。思路:首先可以想到二分枚举答案。枚举一个mid值时,若一件衣服的水量大于mid,则一件衣服的最短时间是烘干一段时间,在自己蒸发一段时间。

2012-09-05 21:37:41 4445 1

原创 POJ 2456 Aggressive cows 二分

来源:http://poj.org/problem?id=2456题意:有n个点,在一条直线上,座标已知。现在要把m头牛放在一些点上,问这些牛之间的最小距离最大是多少。思路:二分答案。代码:#include #include #include using namespace std;const int N = 100010;int num[N];int main(){

2012-09-03 21:31:06 1242 1

原创 POJ 3258 River Hopscotch 二分

来源:http://poj.org/problem?id=3258题意:有一条河,河的长度已知,河中间有一些石头,石头的数量知道,相邻两块石头之间的距离已知。现在可以移除一些石头,问移除m块石头后,相邻两块石头之间的距离的最小值最大是多少。思路:二分枚举答案。每 次二分枚举一个值,判断该值能够去掉多少块石头。二分枚举求上限。代码:#include #include #inclu

2012-09-03 16:42:26 2917

原创 POJ 3272 Monthly Expense 二分

来源:http://poj.org/problem?id=3273题意:给你n个数,让分成m组,每组必须是连续的一些数,求每组的和的最大值最小。思路:二分枚举答案。上界是n个数的和,也就是分成1组的情况,下界是n个数里面的最大值,也就是分成m组的情况,然后看mid = (rp + lp) / 2 能够把n个数分成多少组。其是就是二分枚举求下限的过程。代码:#include #in

2012-09-03 08:30:54 2383 3

原创 POJ 1328 Radar Installation 贪心

来源:http://poj.org/problem?id=1328题意:有一条海岸线,在海岸线上方是大海,海中有一些岛屿,这些岛的位置已知,海岸线上有雷达,雷达的覆盖半径知道,问最少需要多少个雷达覆盖所有的岛屿。思路:每个岛屿的座标已知,以雷达半径为半径画圆,与x轴有两个交点。也就是说,若要覆盖该岛,雷达的位置范围是这两个交点。因此转化为覆盖区间的问题。代码:#include #

2012-09-01 13:06:28 936

空空如也

空空如也

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

TA关注的人

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