自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OMRailgun

Fighting~

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

原创 SPOJ_LEXSTR:Lexicographically_Smallest(并查集)

题意大致是给定一个字符串和m对数(i,j),分别表示字符串的第i个字符和第j个字符(字符串从0标号)可以进行无限次的交换,求问由初始字符串可以得到的字典序最小的字符串是什么.看完题后,做法呼之欲出.直接用并查集将每对(i,j)并入同一个集合,之后对于每个集合,将其中对应位置上的字母按照字典序重排即可,然后这里为了偷懒,直接用了multiset >#include#include#inc

2017-01-15 22:25:21 499

原创 Codeforces_488C:Fight_the_Monster(暴力)

题意玩家和怪兽对决,玩家有hp1,att1,def1属性分别代表生命值、攻击力和防御值,怪兽也有对应的数值hp2,att2,def2.每次对决玩家会对怪兽造成max(0,att1-def2)的伤害,与此同时怪兽对玩家造成max(0,att2-def1)的伤害,当怪兽hp0时玩家获胜.玩家除了初始属性值外,还可以买买买来增强属性值,可以分别以h,a,d的代价分别增加自己一点生命值、攻击力或防御力,可

2017-01-15 21:49:19 511

原创 Codeforces_611D:New_Year_and_Ancient_Prophecy(DP+树状数组)

题意是给定一个n位数字,你现在可以将它分隔成若干个长度更短的数字,例如1234567可以拆分成1234和567两个数字,现在规定一个拆分方案合法当且仅当①拆分出的数字按顺序严格递增②拆除的每个数字是正整数③拆分出的每个数字没有前导0.现在给定n和原来的n位数字,问有多少种合法的拆分方案,答案mod 1e9+7.设原来的n位数字分别存储在a[1..n]中,设c[i][j]表示的是当前分隔到第j位

2017-01-14 23:25:27 308

原创 Codeforces_714E:Sonya_and_Problem_Wihtout_a_Legend(DP+想法题)

题目大意是给定n个数字和一种操作,该操作允许你将其中某个数字+1或者-1,求使n个数字变更为严格单调递增所需的最小操作数.基于离散化+DP的题解在度娘上遍地都是,故不再赘述.这里是在Codeforces上发现了一种十分新奇的做法,但是lz暂时还无法很好的解释它的原理,然后又怕忘记了,所以在这里贴上代码以防忘记,请静待后续更新0.0

2017-01-14 20:52:05 215

原创 Codeforces_509E:Pretty_Song(想法题)

题目大意是给你一个字符串,要求你统计在它的所有连续子串里字符A、E、I、O、U、Y出现的概率之和.如果按照题意枚举出每个子串再算规定字符出现概率的话是稳稳的O(n^2)复杂度,一定会TLE,所以不妨反过来思考,单独计算字符串里的每个字符对于最后答案的贡献,然后问题就简单了许多.下面来考虑针对一个特定位置的字符,它对于最后结果的贡献是如何的,假设它左边有i-1个字符,右侧有j-1个字符则

2017-01-06 16:44:12 443

原创 LightOJ_1265:Island_of_Survival(概率DP/想法题)

题目大意是岛上有一个人,t只老虎和d只鹿,每天都会有两个生物随机碰面,有以下几种情况①老虎与人碰面,人被吃掉②老虎与鹿碰面,鹿被吃掉③老虎与老虎,两只老虎同归于尽④鹿与鹿碰面,什么都不会发生⑤鹿与人碰面,人可以选择杀死鹿或不杀鹿(取决于你),问最后人存货下来的最大概率.经典的概率DP问题,设a[i][j]为岛上剩i只老虎和j只鹿的情况,计算每个a[i][j]时先算出第①②③种情况,随后再按照概

2017-01-05 13:47:06 944

原创 Codeforces_607B:Zuma(区间DP)

题目大意给定长度为n的一个序列ai,每次操作可以消除一个回文串,问至少需要几次操作可以将整个序列消除.解法为区间dp,设f[i][j]表示消除第i至j项所需的最小操作次数,转移的话f[i][j]可以拆分成f[i][k]和f[k+1][j]两段,即相当于分成两段各自消除,而当a[i]==a[j]时,则f[i][j]除了前面的那种消法外,还可以看作在消除了第i+1至j-1个元素后顺带消除了外层的第

2017-01-05 00:13:17 441

原创 Codeforces_484D:Kindergarten(贪心/DP)

题目大意是说给定n个数字,要求你把它分成若干段连续的数列,每段有个贡献值,为这段数列中最大值与最小值之差,然后整个数列的贡献值为每段的贡献值之和,现在让你求该数列的最大贡献值.由简单分析,便可得出每个分得的段落,一定满足:这段数字的最大值与最小值一定分别位于该段数字的边缘两侧,于是基于极值点做次贪心或dp就行...然后在调试了半天终于调对,再与好友的程序对比之后,才发现我的程序是辣么的长(害怕

2017-01-03 20:59:43 501

空空如也

空空如也

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

TA关注的人

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