您的位置:首页 > 运维架构

topcoder srm 519 div 1

2011-09-20 15:20 183 查看
第一次做div 1就被虐了......

250

给定L,R,一个变量i从L到R,每次i变成i+1都是从最高位到最低位一位位改

问改的过程中最大的数是多少

最大的数必然是(0111111...)2>>(1111111...)2的时候

枚举L和R不相同的位最高位是多少

开始1<<64,爆了,long long没这么大

改成1<<63,仍然爆了,max long long比这个小1

改成1<<62,还是爆了,因为忘记1ll<<62了

还有一点小bug,懒说得了

反正最后这250的题只有129分左右吧,悲剧

600

给定不超过6个长度小于等于50的串

问恰好包含其中c个串,长度为l的串有多少个

trie图+状态压缩dp即可

F[i][j][k]表示考虑了前i位,走到了trie图的j号节点,包含的串的二进制状态为k

写完trie图和dp后发现忘记写状态压缩了......

然后看看没什么时间了,估计挂了,就放弃了,于是看了下900的题

900

比600容易写好多

不过和ld一起想了很久还看了别人的code的状态才想出算法

给定一个数(2500位),将它写成若干个不超过16的数相乘的形式

36=3*12=4*9=......

不算排列,有多少种方案

先将该数分解质因数

质因数有2,3,5,7,11,13

除了这些还有质因数则ans=0

考虑形如6=2*3的拆分方式

像2和3组合就可以形成一些合数

不过11和13两个废柴就没什么用了

直接对答案贡献就不用管了

然后发现5和7最多只能和1个2或1个3有关

这是非常好的性质

先只考虑只和2和3相关的数

用F[i][j]表示用了i个2,j个3,组成2,3,6,8,9,12,16这几个数的方案数

然后剩下的2和3必然是和5和7搭配

剩下的3只能和5搭配,那么2必然一部分给7,一部分给5

列个不等式很容易算出方案数

果然topcoder还是需要速度的

顺便我这垃圾英语也该好好提升一下了

只有第一题可怜的129分

rank400去了

rating跌倒1490,变紫了

下次要翻回来......

ps 900的题进practice room写了下,不太熟练,只有320分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: