自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACM_hades的梦想之路

剑锋所指,所向披靡!

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

原创 Codeforces Round #318-(D. Bear and Blocks)

这道题我上来就是想到的是暴力,每次都把表面的那一层减掉,直到所有的高度为0为止。但是T了。题意:现在有n个方格,然后每个方格都有一个高度,然后每次都可以把那些非完整块(就是它的四个方向没有被完全包围)给连在一起消去。问你最后把所有的方块消去需要几次。思路:我们只需要从左边,右边分别进行一次消去,然后最后进行一次判断就好了。最多的次数不可能超过最大的那个的高度。首先初始化为h1[

2015-08-30 21:51:43 714

原创 Codeforces Round #318-(C. Bear and Poker)

题意:现在有n个人,每个人都持有a[i]这个价值的牌,并且每个人可以每次无限次数的使自己的牌扩大2倍,扩大3倍,然后问你是否可能使得最终所有人的牌的价值数变成一样的。思路:很明显,因为最后所有数都要相同的话,那么只可能是和最大的那个数相同的,并且它只能由扩大2倍,3倍来得到,所以我们可以使所有的数都不停的除以2与3,直到不能除为止,然后判断除完以后所有的数是否相同,如果相同,则说明是可

2015-08-30 21:40:09 827

原创 Codeforces Round #318-(B. Bear and Three Musketeers)

这道题做的时候还剩下30多分钟了,于是有点慌。。。果然心理素质还是有待提高,这么水的题都没有过):导致又掉rating了。。。题意:现在给你n个人,m个询问,然后接下来m行告诉你a与b是相互认识的,但是这个认识不能够相互传递,也就是说a认识b,b认识c,但是a并不认识c。然后问你是否能够在这n个人中选取3个人,使得它们认识其他人的总数最少,并且这三个人要相互认识(也就是a-b,b-c,

2015-08-30 21:31:39 663

原创 LightOJ(1422)——Halloween Costumes

首先,我还是表扬一下自己,开始独立思考了,虽然说最后的想法是错误的,但是至少已经很接近了。所以,再接再厉吧!题意:现在那个人要去参加一个聚会,然后总共有n天,每天所要求穿的服饰的序号分别为c[i]。这个人可以一次性穿上1件衣服,或者一次性脱下任意多件衣服。当然也可以在衣服外面套衣服。并且如果这件衣服已经被脱下的话,那么它下次不能再次被穿上,如果我们还需要这件衣服的话,那么我们就只能

2015-08-28 17:55:37 1182

原创 zjnu(1183)——括号序列【基础算法・动态规划】——高级

首先,我只想声明一点,这道题有毒。。。我用char读入就错了,然而换成string读入就对了或者可以把定义char的数组开的大一点,原先1A的一题硬是纠结了老半天。传送门:zjnu题意:就是对于一个组成的序列,添加尽量少的括号得到一个规则序列,并且输出这个序列的长度。不过我学到了两种定义dp状态的方法:1)定义dp[i][j]为i~j中需要添加的最少的括号数。

2015-08-27 23:36:54 2567

原创 poj(2955)——Brackets(区间dp)

题意:现在我们定义一种R串,它必须满足以下条件:1)当它的字串是空的时候时,那么它是R串。2)当它是R串时,那么(s)或是[s]也是R串。3)当a和b都是R串时,那么ab也是R串。这里我没有完全领悟题目的意思,所以我发现递推不过去。其实它的实质就是括号匹配。if((a[s]=='('&&a[e]==')')||(a[s]=='['&&a[e]==']'))dp[s]

2015-08-26 23:30:04 803

原创 hdu(3555)——Bomb(不要49)

这道题和不要62那道题有些类似,这道题是不要出现连续的49。思路大致一样,只是在对f数组进行初始化的时候,我们需要求的是数中不含有49的个数,然后最后利用n+1-cal(n+1)来求出正确答案,这里与我想的有些不同。还要注意一点,要全部转化为__int64,要不然的话会WA。#include#include#include#include#include#include#i

2015-08-26 14:04:26 950

原创 hdu(2089)——不要62(数位dp)

这道题很早之前就用数位dp做过一遍,但是那时候并没有理解透彻。今天又细细思考了一下,感觉比之前要好多了题意:就是叫你在[n,m]这个区间范围内找出不包含4和62的数字的个数。思路:1)暴力2)数位dp:      做数位dp前,我们首先需要初始化,我们定义f[i][j]为开头为j的i位数中正常的数字有几个。     然后我们可以用三层for循环来对f数组进行初始化。

2015-08-26 00:07:04 1097

原创 zjnu(1181)——石子合并

这道题算是最简单的区间dp了。。很久之前写的,搞懂原理了就1A。状态方程定义:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[i][j]);然后利用三层for就好了。for(int len=2;len<=n;len++){ for(int s=1;s<=n-len+1;s++){ int e=s+len-1; f[s][e

2015-08-24 20:46:08 1035

原创 zjnu(1182)——能量项链

这道题和石子归并其实是同样的题目。题目链接:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1182题意:(那边写的不是很清楚)首先给你n个珠子,每个珠子都有两个属性,分别是头标记与尾标记,然后分别给出n个数,分别代表的是这些珠子的头标记。前一颗珠子的尾标记一定等于后一颗珠子的头标记。如果前一颗能量珠的头标记为m,尾标

2015-08-24 20:32:53 831

原创 poj(1661)——Help Jimmy(二维dp)

题意:现在共有N个平台,然后一开始它站在坐标为(x,y)的位置,然后它每次下落与往左右走的速度都是1m/s,并且它每次下落的距离不能超过max米。告诉你每个平台的左右端点的坐标与它的高度,然后问你它到达地面的最早时间是多少。注:如果Jimmy恰好落在某个平台的边缘,被视为落在平台上。所有的平台均不重叠或相连。思路:这道题一开始卡了我好久。。(我一开始还以为这道题又和Ma

2015-08-23 22:22:25 756

原创 poj(3186)——Treats for the Cows

题意:现在告诉N个数,然后告诉你它们的价值v[i],你每次都可以从头或者尾部取出一个数字,并且加上它的价值,它的价值的计算方式是:v[i]*a(其中a代表的是第几天把它取出来的),现在你的目的就是为了使取出n个数的总价值和最大化。思路:一开始我的dp方程定义错了,所以导致有点推不下去。应该定义为:dp[i][j],i代表从左边起取i个数,j代表从右边起取j个数,然后dp的定义是按照

2015-08-22 23:16:49 918

原创 hdu(5400)——Arithmetic Sequence(想法题)

题意:首先,现在给出三个数字n,d1,d2。然后第二行给出n个数字。然后题目要求的是求这个序列中有几个区间满足一下条件之一:1)这个区间是一个等差数列,且公差为d1或d2;2)若一个区间为[l,r],那么有l*注意,这里单个数字一定是满足等差数列的。而且这里数字最好都使用__int64来保存,因为这个原因我们队WA了好几次。思路:这里我设了头和尾两个指针,分别用l和r表

2015-08-20 01:21:22 1259

原创 hdu(2859)——Phalanx(dp)

题意:现在有一个n*n的矩阵,然后每个格子中都有一个字母(大写或小写组成)。然后询问你现在最大的对称子矩阵的边长是多少。注意这里的对角线是从左下角到右上角上去的。思路:这道题我自己写出了dp的定义式,但是要怎么转移方程并没有推出来。我看了好久的题解才明白的,果然还是太弱。。。首先我们定义:dp[i][j]为第i行第j列所能够组成的最大对称子矩阵的长度。转移方程为:dp[i]

2015-08-20 00:00:05 1427 1

原创 hdu(5402)——Travelling Salesman Problem(模拟题)

啊。。。这道题我一开始的想法是dp,因为我们要求的是在这个区间中和的最大值。但是没想到只要暴力就好了。这道题用到了一个著名的想法是:黑白棋盘染色问题。题意:现在给你一个n*m的矩阵,然后告诉你每个矩阵中的数字,然后现在要从左上角走到右下角,然后问你所能获得的数字和的最大值是多少。当然,你只能往四个方向走,而且每个点只能走一次。并且叫你输出路径。思路:这里我分了三种情况。

2015-08-19 14:32:38 782

原创 hdu(1069)——Monkey and Banana(LIS变形)

题意:现在给你n个石块,然后它由坐标来表示(x,y,z)。但是它可以有不同的方法,也就是说它的三个坐标可以轮换着来的。石块的数量不限,但是每次都必须保持上底面的长和宽严格递减,然后问你用这些石块所能拼成的最大高度是多少。思路:因为坐标有多种情况,所以我们可以把每次的情况都存下去。这里需要注意的是,在保存的时候,我们要保持x的坐标是大于y的,这样方便我们之后的排序。然后就直接

2015-08-17 22:02:49 780

原创 hdu(1114)——Piggy-Bank(完全背包)

唔。。最近在练基础dp这道题挺简单的(haha),但是我只想说这里得注意一个细节。首先题意:有T组样例,然后给出储蓄罐的起始重量E,结束重量F(也就是当它里面存满了零钱的时候),然后给你一个数N,代表现在有N种类型的硬币。然后接下来N行,每行分别有两个数字P,W,P代表的是这种类型零钱的价值,W则代表的是这种类型零钱的重量,零钱的数量不限。然后要你输出在满足当前重量就是F的情况

2015-08-17 21:51:57 905

原创 poj(2528)——Mayor's posters(线段树+离散化)

算法

2015-08-15 09:47:38 899

原创 hdu(5389)——Zero Escape(01背包变形)

啊,这是一道挺不错的动态规划的题目呢。

2015-08-14 21:58:35 693

原创 poj(1088)——滑雪(经典递推型动归)

题意:中文题,就是在所有的点中找一个点作为起点,然后叫你找出从起点开始的最长路径是多少。这里高度必须严格递减。思路:一开始我碰到这题时,没有思路,是看题解写的。但是今天我回头再去看时,发现自己能够独立写出来了,而且和上次的方法不一样。也许这就是进步吧!其实就是一个递推型动归,如果理解了上一题,那么这题也好做了。这是第一次写的:#include#include#i

2015-08-12 20:33:00 1246

原创 hdu(1078)——FatMouse and Cheese(递推型动归)

题意:现在有n*n的方块,然后每个方块中都有一个值,代表这个方块中含有奶酪的数量。现在那个老鼠站在(0,0)点,并且它每次最多走k步,然后每次走到一个点,它都能获得那个点上含有的值,但是要保证它下次走到的点含有的奶酪数必须多于它现在在的那个位置上的奶酪数量。思路:这道题也是一道递推性动归,和poj 1088 滑雪那题的区别就是这题最多可以走k步。这道题让我更加深刻的理解了递推性

2015-08-12 20:20:47 677

原创 hdu(1160)——FatMouse's Speed

题意:现在给你一些数据输入,第一个代表的是体积,第二个代表的是它的速度。然后题目让你找到当体积递增但是速度递减时的最长的一个子序列,注意这里体积是要严格的递增的,速度则是要严格的递减的。最后要你把他们的序号输出。思路:是不是有点感觉像LIS问题。但是这里还是有点差别的。因为它要让你记录。首先我们先对体积从小到大排序,然后我们对速度进行最长递减子序列的查询。这里的记录前驱和我们上

2015-08-12 13:14:06 792

原创 Codeforces Round #315 (Div. 2)——C. Primes or Palindromes?

这道题竟然是一个大暴力。。。题意: π(n):小于等于n的数中素数的个数 rub(n) :小于等于n的数中属于回文数的个数然后给你两个数p,q,其中A=p/q; 然后要你找到对于给定的A,找到使得π(n) ≤ A·rub(n)最大的n。(A思路:首先我们可以暴力算出当n为大概150万左右的时候,π(n)大概是 rub(n) 的42倍。所以我们只需要for

2015-08-11 23:47:07 607

原创 Right me speak (对我自己说

暑期集训过了一大半了呢,感觉学校里的算法课上的好快,而且我也没怎么消化完全。不过,中途去了pku,遇见了gw,真的觉得他讲的很棒啊!虽然说是有点快,但是每天晚上我都会去看pdf去消化,恩,真的学到了很多。希望有一天能成为他的学生,哈哈。恩,还遇见了杜宇飞,很耐心的解答我们问题的一个学长,并没有因为自己去了final而显现出很骄傲的样子,真的很棒。再说说我自己吧,回来后的几场比赛,我

2015-08-09 21:46:10 901 1

原创 指数型母函数理解

普通型母函数主要是求组合的方案数,而指数型母函数则是求多重排列数。例如:设有8个元素,a1重复3次,a2重复2次,a3重复3次。从中取出r个集合,求其组合数。推荐:http://www.wutianqi.com/?p=2644以hdu 1521为例:有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"

2015-08-09 21:05:37 1241

原创 普通型母函数模板理解

今天学习了一下母函数的知识,感觉它像是专门做一类题用的。推荐一个比较好的入门的母函数博客:http://www.wutianqi.com/?p=596我写这篇文章的目的,就是为了再次总结一下他写的那个模板,毕竟看了很久才懂的。这里我以 hdu 1028 这道题为例这道题目的大致意思是:给你一个正整数N,然后要你求有多少种可以加到N的方式。#include#include#i

2015-08-09 20:55:09 1315

原创 Codeforces Round #Pi (Div. 2) —— D One-Dimensional Battle Ships

题目的意思是:现在有一个长度为n,宽为1的方格,在上面可以放大小为1*a船,然后输入为n,k,a;分别为平地的大小,船的数量,船的长度。一个叫alice的人已经在地图上摆好了船的位置。然后bob总共可以有m次攻击的机会,然后他每次攻击的点为xi,但是alice并不会告诉它有没有打中(也就是说每次都认为他是miss的),问你,bob可以在第几次攻击的时候推测出alice在撒谎,如果推测不

2015-08-08 00:37:30 953

原创 Codeforces Round #Pi (Div. 2) —— C-Geometric Progression

题意:现在有n个数,然后给出一个数k(代表的是等比数列中的那个公比),然后第二行给出n个数,代表的是这个序列。最后的问题是叫你找出在这个序列中满足公比为k的三个数有几种,并输出方案总数。思路:这道题很巧妙啊,用到了map。首先我们先记录下每种数出现过了几次,这里因为数太大了,直接用数组存会爆掉,所以改用map。我们需要两个map,分别记为mp1,mp2. 然后在for的

2015-08-08 00:16:27 872

原创 Codeforces Round #Pi (Div. 2) ——B. Berland National Library

这道题我一开始想了很久,但是fst 了。而且赛后想的也不是很清楚,所以有必要把它单独分出来讲清楚。题意:现在在log中有n条记录。然后每一条记录都写成:"+ri"或是"-ri"的形式。(其中+是代表有人进入,-代表有人出去)ri代表的是进入人的号码。然后问你房间中最多同时有几个人存在。思路:我们需要两个变量max与sum,其中max是记录房间的最大容量的,sum是表示当前还有多

2015-08-07 15:12:33 720

原创 poj(2184)——Cow Exhibition(01背包变形)

其实我想说这道题我觉得我自己并没有深刻的理解。但是今天做了一下,先把现在的想法记录下来 。题目的大致意思是:有N头牛,每头牛都有一个s值代表智商值,f值代表它的幽默值。然后问你智商值和幽默值的总和值最大是多少,其中必须保证智商值的和与幽默值的和为非负数。一开始我想到的也是01背包,但是这里还有负值,于是我就没有办法了。于是学习到了一个相当于把坐标平移的方法。因为这里有-1000

2015-08-02 22:18:19 809

空空如也

空空如也

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

TA关注的人

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