11月26

       这三天主要是做了两道题,看了会状态压缩dp的博客,复习了一下树型dp,首先,做的是N - Treasure Hunt II,这道题,题意是n个城市排成一行,每个城市中有vi个金币。两个人同时从同一个个城市出发,单位时间能走到相邻城市。 到达城市获取金币不耗时间,且任意时刻两人距离不可以超过m,问t个时间他们最多能获得多少金币。这个题没用树装dp来做,用的是模拟,如果 m >= t * 2,两个人两个方向一直走,否则的话两人一直向两边走指导相距m,还要判断奇偶,若m为奇数,则某人要停走一天。然后维持距离同时向左向右枚举剩余天数。然后是Blackboard Fibonacci 这道题,题意是有两个数两种操作,将两个数的和替换掉其中一个。依次下去,两种操作轮流,就是FIB数列的构造。给出操作次数N以及第 N项R,问能不能构造出这样的数列,而且要求错误次数最少。这样从刚开始来推是不现实的,要从后往前推,A>B那么前一个必然是A-B,B,而且这一步的操作肯定是和替换A-B。 这样的话枚举倒数第二项倒推回来,看是否刚好N项并记录错误的次数就好了。然后状态压缩刚刚看了几道题,有三个很实用的操作,1.判断一个数字x二进制下第i位是不是等于1。 方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0) 将1左移i-1位。2.将一个数字x二进制下第i位更改成1。 方法:x = x | ( 1<<(i-1) )  3.把一个数字二进制下最靠右的第一个1去掉。 方法:x=x&(x-1)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值