2018年8月6日训练笔记

      今天上午在看暑假专题5,现在回想上午看得太细,不是很有必要,能多看些一些博客更重要一些,下午杭电多校5比赛签到比较难,B题虽然不难,但是容易让人陷入错误贪心之中,其实各种暴力就行。E题一道高中数学题,开始去网上找了个模板调了很久,还把情况想复杂了,所以出的比较慢。其余出的多的就是G题,一道线段树,还不是很明白,明天补。 

 

贴一个题解:

bestcoder题解:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-7-solutions-by-uestc/

1006 Gray code

题意:给出2进制串,串的某些位置为‘?’表示这一位可能为‘1’也可能为‘0’,每个确定的二进制串对应唯一的格雷码,而对于一个确定的格雷码串如果串的第i个位置为‘1’那么答案中的权值加a[i],问给出的2进制能获得最大权值是什么。

解析:标准格雷码的性质:二进制a1 a2 ... an,对应的格雷码为a1 a1 xor a2 ... an-1 xor an 题目就可以转为O(n)dp dp[i][j]表示二进制第i位为j时前i位对应最大分数。

状态转移方程为:

                           dp[i][0]=max(dp[i-1][0],dp[i-1][1]+a[i]);

                           dp[i][1]=max(dp[i-1][1],dp[i-1][0]+a[i]);

但因为某些位是给定的,所以只能算其中部分状态,加一些if判断即可。

链接:https://blog.csdn.net/JeremyGJY/article/details/50682260

           https://blog.csdn.net/David_Jett/article/details/47606187

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值