07年重庆队选拔赛试题 非官方题解 by Matrix67

题目在这里:http://www.matrix67.com/blog/article.asp?id=186

    第一题是老题了,到处都有,连Vijos上居然也找到了一个(VOJ1214)。
    一个O( sqrt(k) )的方法是先算前面sqrt(k)个值,然后剩下的部分除出来的商会出现大段大段相等的情况(这些商的值从sqrt(k)一直变到0,因此最多有sqrt(k)段),每一段的余数是个等差数列,它们的和可以直接算出来。

    第二题,递归问题递归求解。看看样例怎么来的吧,312的右边可以直接确定为314,因为最后一位是2,它的右边就是相同大小的4。312的下边是31的下边,即34。312的左边就是31的左边,而31的左边仍然不能确定(因为1的左边不知道是什么,还需要看它所在的更大的三角形),于是继续递归为3的左边,3的左边是4。这个递归操作完全是多余的,其实只需要从后往前扫描一遍输入的字串就可以了,分别把第一次出现的1、2、3改成4。还有,如果最后一位是4,那就把它改成1、2、3。

    第三题当成答案提交类的题目乱搞,可以搜,也可以用带状态压缩的动态规划。
    第四题动态规划,F[i,j,k]表示从 i 到 j 这一段,且最底下被涂成了颜色k后所需要的最少次数。

Matrix67原创
转贴请注明出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值