自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一点一点的进步

  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 POJ 3614 Sunscreen 优先队列 贪心

题意有C个奶牛去晒太阳 (1 而刚开始的阳光的强度非常大,奶牛都承受不住,然后奶牛就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值。那么为了不让奶牛烫伤,又不会没有效果。给出了L种防晒霜。每种的数量和固定的阳光强度也给出来了每个奶牛只能抹一瓶防晒霜,最后问能够享受晒太阳的奶牛有几个。那么将奶牛按照阳光强度的最小值从小到大排序。将防晒霜也按照能固

2013-08-31 00:19:51 7091 2

原创 POJ 2184 Cow Exhibition 01背包

题意就是给出n对数每对xi, yi 的值范围是-1000到1000然后让你从中取若干对使得sum(x[k]+y[k]) 最大并且非负   且 sum(x[k]) >= 0 sum(y[k]) >= 0  其中 k为所有你取到的标号然后刚开始没什么思路后来想想。 这就是背包吧。将x看成花费,y看成价值然后dp[i]表示在花费了i情况时价值最大是多少注意到数值有

2013-08-30 20:48:16 843

原创 POJ 36666 Making the Grade 简单DP

题意是:给出n个数,让你用最小的花费将其改成非递增或非递减的然后花费就是新序列与原序列各个位置的数的差的绝对值的和然后可以看到有2000个数,数的范围是10亿仔细观察可以想象到。其实改变序列中的值时,也只需要改成一个出现在原序列中的值即可也就是说新序列中的数都是在原数列中出现过的。那么我们可以将原数列离散化。dp[i][j] 表示将i位置的数改成离散化后第j个数

2013-08-30 16:48:32 985

原创 POJ 3181 Dollar Dayz 简单DP

这DP虽然简单但是思考一下还是挺好的题意是1,2,3,4....k 用加法凑成N每个数可取不限个数令dp[i][j] 表示前i种数凑成j的方案数然后dp[i][j] = dp[i - 1][j] + dp[i - 1][j - i] + dp[i - 1][j - 2 * i]........dp[i - 1][j - k * i]这样子然后代码如下,由于结

2013-08-29 17:10:26 985

原创 POJ 3046 Ant Counting 简单DP

题意也比较简单了。 大概是:给出T种数字。每种各有N[i]个然后用这些数字构成一些序列, 问x长度到y长度的序列有多少种那么就是DP了dp[i][j] 表示前i种数字构成长度为j的序列有多少种然后dp[i][j] = sigma(dp[i - 1][j - k]) k的范围是0~N[i]注意到这里的sigma(dp[i - 1][j - k]) 可以用部分和

2013-08-28 13:05:43 3950

原创 2012 East Central Regional Contest 解题报告

昨晚各种莫名其妙卡题。不过细看这套题还挺简单的。全是各种暴力。

2013-08-27 00:56:14 1458 4

原创 POJ 3280 Cheapest Palindrome 简单DP

观察题目我们可以知道,实际上对于一个字母,你在串中删除或者添加本质上一样的,因为既然你添加是为了让其对称,说明有一个孤立的字母没有配对的,也就可以删掉,也能满足对称。故两种操作看成一种,只需要保留花费少的那个即可然后令dp[i][j]表示从位置i到j的子串转化为回文串需要的次数若 s[i]== s[j] 则dp[i][j] = dp[i + 1][j - 1]否则 dp[i

2013-08-25 16:58:34 1014

原创 POJ 3262 Protecting the Flowers 贪心

题意很简单。有n个牛在FJ的花园乱吃。所以FJ要赶他们回牛棚。每个牛在被赶走之前每秒吃Di个花朵。赶它回去FJ要花的时间是Ti。在被赶走的过程中牛就不能乱吃了那么其实我第一感觉就是跟比率有关。然后简略的证了一下。假设序列都由二元组组成,二元组是由D和T组成,那么对一个序列有相邻的两头牛是这样的..........(a, b) ,(c, d)...........

2013-08-24 20:10:08 3105 1

原创 POJ 3040 Allowance 贪心

这题目的贪心思路还是有一点细节问题的。还没有证明,据说是因为题目给的条件是每个价格是比它小的价格的倍数才能这么贪心的。思路如下:假设要给奶牛的钱为C1)从大面值到小面值一次拿钱,能拿多少拿多少。但是注意不能拿到的钱的总和大于C2)如果第一步拿到的钱不够C,那么就从小面值到大面值拿钱,能拿多少拿多少。直到拿到的钱综合大于等于C我刚开始第一步实现的比较好,但是第二步想错

2013-08-24 17:40:18 3987

原创 POJ 3169 差分约束

首先题目中的隐含条件是d[i] 即d[i + 1] + 0 >= d[i]然后对那ML个条件d[y] - d[x] d[x] + w >= d[y]对那MD个条件d[y] - d[x] >= w -> d[y] + (-w) >= d[x] 然后呢就可以加边了。对于一个不等式 d[u] + w >= d[v] 我们可以加边(u, v , w

2013-08-22 21:49:29 2020

原创 HDU 4685 二分图匹配+tarjan

这题跟POJ的1904很像。大意就是有n个王子和m个公主每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚公主就比较悲惨, 跟谁结婚都行然后输出王子可能的结婚对象必须保证王子与任意这些对象中的一个结婚,都不会影响到剩余的王子的配对数,也就是不能让剩余的王子中突然有一个人没婚可结了然后思路其实跟POJ1904非常像。但是POJ那题给出了初始的一个完备

2013-08-15 21:08:48 4069

原创 HDU4606 Occupy Cities 计算几何+最小路径覆盖

题目大意如下在一个二维坐标系中,有n个城市,坐标给出来了,然后有p个士兵要去占领这n个城市,但是路上有m个路障,都是线段,士兵不能越过路障前进。每个士兵都有相同容量大小的一个干粮袋,每到一个城市他就能补充满自己的干粮袋。中途走路时走一个单位长度就消耗一个单位的干粮。现在问的是这些个干粮袋最小的容量是多少,前提是保证p个士兵能占领完这n个城市,城市被占领顺序也是题目给好的,必须遵守

2013-08-15 09:31:47 1321

原创 DU 4609 3-idiots FFT

题意还是比较好懂。给出若干个木棍的长度,问这些木棍构成三角形的可能性。那么公式很容易知道就是这些木棍组成三角形的所有情况个数 除以 从n个木棍中取3个木棍的情况数量C(n, 3) 即可但是很显然分子不太好求。 因为木棍数据量是n^5暂时没有办法,于是看到木棍的边长,数据量也是10^5,似乎预示着什么那么我们可不可以这样:根据三角形的性质,两边之和大于第三边。我们就枚

2013-08-06 10:53:58 1150

原创 HDU 1402 FFT 求 大数乘法

这题的数据量是5w, 也就是传统意义上的n^2算法是不可取的。这里就用到了FFTFFT一般的作用就是使得多项式乘法的复杂度降到nlogn。利用FFT可以快速求出循环卷积。那么卷积又是什么样一个东西。----------------------------------------以下内容转自http://blog.sina.com.cn/s/blog_6733026501019u

2013-08-06 10:13:43 8245 3

原创 HDU 4605 Magic Ball Game 树状数组

题目大意很简单。有一颗树(10^5结点),所有结点要么没有子结点,要么有两个子结点。然后每个结点都有一个重量值,根结点是1然后有一个球,从结点1开始往子孙结点走。每碰到一个结点,有三种情况如果此球重量等于该结点重量,球就停下了如果此球重量小于该结点重量,则分别往左右儿子走的可能都是1/2如果此球重量大于该结点重量,则走向左儿子的概率是1/8,右儿子的概率是7/8然后若干

2013-08-04 13:00:12 1825

原创 HDU 4602 Partition 规律题

貌似是个比较简答的规律题。 解题报告中说的很详细我们可以特判出n 对于1 情况考虑: 第一种情况,被选出的不包含端点,那么有(n – k − 1)种情况完成上述操作,剩下未被圈的点之间还有(n – k − 2)个位置,可以在每个位置断开,所以共 2^(n−k−2) ∗ (n−k−1)种方法。 第二种情况,即被选出的包含端点,那么有2 种情况,并且剩余共(n – k −

2013-08-04 08:59:54 1538

原创 HDU 4604 Deque 二分最长上升子序列

题目大意就是给一个deque然后有n个数,依次进行操作,每种操作,你可以把这个数放在deque首部,也可以放在尾部,也可以扔掉不管,但是要保证deque中的数是非递减的。最要求deque中最长能是多少思路是这样的:对于这个序列,最重要的应该是第一个进去的数是什么,然后以该数为开头的最长不升子序列和以该数为开头的最长不降子序列则可以凑成一个最长的序列,当然这两个序列中可能都出现了该数

2013-08-02 21:10:32 2383 4

归并排序实现

使用C++实现了归并排序,有注释,简明易懂

2013-06-11

堆排序实现

使用C++实现了堆排序,有注释,简明易懂

2013-06-11

插入排序实现

使用C++实现了插入排序,有注释,简明易懂

2013-06-11

java 俄罗斯方块源码

代码可直接运行, 主要功能有基本的俄罗斯方块,加速,开始,暂停等

2011-12-19

空空如也

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

TA关注的人

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