HDU 5375 Gray code(DP)

别再只调电位器了!用单片机PWM控制LM317输出电压,精度和玩法都多了 本文探讨了如何利用单片机PWM控制LM317输出电压,替代传统的电位器调节方案。通过PWM信号的有源滤波和运放处理,实现了更高精度(±5mV)、更好温度稳定性(0.01%/°C)的数控稳压电源设计,支持远程控制和可编程曲线输出,为经典电路注入数字化智能。 阅读详情

Gray code

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 185    Accepted Submission(s): 105


Problem Description
The reflected binary code, also known as Gray code after Frank Gray, is a binary numeral system where two successive values differ in only onebit (binary digit). The reflected binary code was originally designed to prevent spurious output from electromechanical switches. Today, Gray codes are widely used to facilitate error correction in digital communications such as digital terrestrial television and some cable TV systems.



Now , you are given a binary number of length n including ‘0’ , ’1’ and ‘?’(? means that you can use either 0 or 1 to fill this position) and n integers(a1,a2,….,an) . A certain binary number corresponds to a gray code only. If the ith bit of this gray code is 1,you can get the point ai.
Can you tell me how many points you can get at most?

For instance, the binary number “00?0” may be “0000” or “0010”,and the corresponding gray code are “0000” or “0011”.You can choose “0000” getting nothing or “0011” getting the point a3 and a4.
 

Input
The first line of the input contains the number of test cases T.

Each test case begins with string with ‘0’,’1’ and ‘?’.

The next line contains n (1<=n<=200000) integers (n is the length of the string).

a1 a2 a3 … an (1<=ai<=1000)
 

Output
For each test case, output “Case #x: ans”, in which x is the case number counted from one,’ans’ is the points you can get at most
 

Sample Input
2 00?0 1 2 4 8 ???? 1 2 4 8
 

Sample Output
Case #1: 12 Case #2: 15
Hint
https://en.wikipedia.org/wiki/Gray_code http://baike.baidu.com/view/358724.htm

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>

#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define bug printf("hihi\n")
#define eps 1e-8
typedef long long ll;

using namespace std;
#define mod 1000000007

#define INF 0x3f3f3f3f
#define N 200005

int va[N];

char c[N];
int len;
int ans;
int dp[N][2];
int ca=0;

void DP()
{

   int i,j;
   if(c[1]=='1')
   {
       dp[1][1]=va[1];
       dp[1][0]=-INF;
   }
   else
    if(c[1]=='0')
   {
       dp[1][1]=-INF;
       dp[1][0]=0;
   }
   else
   {
       dp[1][0]=0;
       dp[1][1]=va[1];
   }

   for(i=2;i<=len;i++)
      if(c[i]=='1')
   {
       dp[i][1]=max(dp[i-1][1],dp[i-1][0]+va[i]);
       dp[i][0]=-INF;
   }
   else if(c[i]=='0')
   {
       dp[i][1]=-INF;
       dp[i][0]=max(dp[i-1][0],dp[i-1][1]+va[i]);
   }
   else
   {
       dp[i][1]=max(dp[i-1][1],dp[i-1][0]+va[i]);
       dp[i][0]=max(dp[i-1][1]+va[i],dp[i-1][0]);
   }

   printf("Case #%d: %d\n",++ca,max(dp[len][0],dp[len][1]));
}

int main()
{
    int i,j,t,ca=0;
    scanf("%d",&t);
    while(t--)
    {
      scanf("%s",c+1);
      len=strlen(c+1);
      for(i=1;i<=len;i++)
         scanf("%d",&va[i]);
      DP();
    }
   return 0;
}





UE5新手必看:如何在UMG控件中嵌入浏览器实现Web页面展示(附完整步骤) 本文为UE5新手提供了在UMG控件中无缝集成Web浏览器的完整实战指南。详细介绍了从启用WebBrowser插件、创建并配置WebBrowser控件蓝图,到编写动态加载与交互逻辑,以及在游戏关卡中实例化UI的全过程。文章还分享了性能优化技巧与常见问题排查方法,帮助开发者高效实现游戏UI内的Web页面展示与交互。 阅读详情

相关推荐

OSPF路由协议配置

构建直连连通让R1、R2、R3、R4加入OSPF,实现全网互通。掌握OSPF邻居状态的解读。掌握单区域OSPF的配置。理解OSPF的基本概念。AR3上的OSPF配置。AR4上的OSPF配置。R1上的OSPF配置。R2上的OSPF配置。

SURTR999的博客 7695

HDU 5375 Gray code(模拟)

Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 65    Accepted Submission(s): 35 Problem Description The reflected binary

叶孤心的专栏 908

处理图数据, 安装“Pytorch“ + 图神经网络开源框架“PyG “+ “ogb“使用

"OGB" OSError: [WinError 127] 找不到指定的程序。1.[遇到这类问题往往跟torch安装的工具包(如torch-sparse,torch-scatter,torch-cluster)版本没对应上有关](https://blog.youkuaiyun.com/weixin_42358688/article/details/117433691)2.[OGB使用环境安装与依赖](https://ogb.stanford.edu/docs/home/)Data Loaders3.[torch-geo

Fuguir™的博客 3698

HDU 5375 Gray code

题目地址:点击打开链接 题意:给你一个二进制码,让你把它转为格雷码,对应位如果是1就把这一位的价值加到总和,否则不加,求能取得的最大价值 思路:二进制码转格雷码,第一位和二进制码的数字相同,如果二进制码的第i位和第i-1位相同,则格雷码的第i位为0,如果二进制码的第i位和第i-1位不相同,则格雷码的第i位为1,即二进制码的第i位和i-1位上的数字异或的结果就是格雷码第i位的数字,参考大神A的

Java识堂,一个有干货的微信公众号 443

保姆级教程:手把手配置MAX9295/9296 GMSL2-CSI2链路,搞定4LAN/1LAN模式与常见调试

本文提供MAX9295/9296 GMSL2-CSI2链路的详细配置教程,涵盖4LAN和1LAN模式的硬件连接、寄存器配置及调试技巧。通过实战案例和代码示例,帮助开发者快速实现高带宽视频传输,解决常见问题如信号同步和功耗优化,适用于车载摄像头和机器人视觉系统开发。

weixin_42561143的博客 434

Leaflet 加载天地图完整配置指南:从插件修改到无限缩放(附源码)

本文详细介绍了Leaflet与天地图深度集成的完整配置指南,包括插件修改、无限缩放实现及源码示例。通过解析天地图服务的WMTS协议、双投影支持和密钥机制,帮助开发者突破缩放级别限制,优化地图应用性能,适用于Web地图开发和高精度GIS系统。

weixin_27180827的博客 441

hdu5375Gray code dp

//给一个二进制码,其中有些位置有问号 //可以在问号处填0或者1 //转换后的格雷码的第i个位置如果是1,那么就得到a[i]的权值,问最大能得到多少权值 //由二进制码转换为格雷码的公式为将二进制码右移一位然后与原来的二进制码按位异或 //dp[i][0]表示第i位是0得到的最大值 //dp[i][1]表示第i位是1得到的最大值 // dp[i][0] = max(dp[i-1][0] , dp[

ijbuhv的专栏 1496

Android CCodec (十一) Codec2Buffer BufferPool分析

1、序言 2、C2BlockPool分析 3、SimpleC2Component关于BlockingBlockPool的实现 4、总结

给大佬递杯卡布奇诺的博客 4022

hdu 5375 Gray code (DP)

给一个二进制码,其中有些位置有问号 可以在问号处填0或者1 转换后的格雷码的第i个位置如果是1,那么就得到a[i]的权值,问最大能得到多少权值 由二进制码转换为格雷码的公式为将二进制码右移一位然后与原来的二进制码按位异或 dp[i][0]表示第i位是0得到的最大值 dp[i][1]表示第i位是1得到的最大值  dp[i][0] = max(dp[i-1][0] , dp[i-1][1]

Slow_Wakler的专栏 607

PCL体素滤波器【2026最新版】

PCL实现的VoxelGrid类和ApproximateVoxelGrid体素滤波,详细记录。博客长期更新,本文最近一次更新时间为:2026年3月14日。

点云侠的博客 39万+

【Burp入门第二十二篇】BurpSuite配置Hea插件教程+添加配置项

HaE是一个基于BurpSuite Java插件API开发的辅助型框架式插件,旨在实现对HTTP消息的高亮标记和信息提取。该插件通过自定义正则表达式匹配响应报文或请求报文,并对匹配成功的报文进行标记和提取。

等风来 9627

hdu5375 Gray code(动态规划)

题目: Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 860    Accepted Submission(s): 490 Problem Description The reflected b

hexiecs的技术专栏 650

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

hdu 5375 Gray code(DP)

hdu 5375 Gray codeProblem Description The reflected binary code, also known as Gray code after Frank Gray, is a binary numeral system where two successive values differ in only onebit (binary digit).

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 664

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

hdu 5375 Gray code dp

题意:长度为n的01串(?可以表示0或1),表示成的二进制,转成格雷码,每个位置有一个分值,若格雷码的i位置为1则可以得到val【i】分,求最多能拿多少分。 设dp【i】【0】为i位置为0时的最高分,dp【i】【1】为i位置为1时的最高分 ,然后分类判断一下即可。 #include using namespace std; typedef long long ll; const int N

uuuuuu 432

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

hdu5375 Gray code(DP)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5375 题目大意:给你一个二进制串,带’?’的位置可以由你来决定填’1’还是’0’,补充完整之后转换成格雷码表示,每一个位置都有一个权值a[i],只有格雷码为’1’的位可以加上权值,问你最终权值之和最大为多少。  格雷码表示可以百度一下,在这里可以通俗一点讲:对于这么一个串,如果i位

hahahaha 747

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 5375 Gray code (简单dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 626    Accepted Submi

David_Jett 1126

HDU5375——DP——Gray code

格雷值与二进制转化公式,G[i] = B[i]^B[i-1],二进制前面补0dp[i][j]定义为当前是第i个格雷值,值是j的和 * Author :powatr * Created Time :2015-8-11 13:19:46 * File Name :1007.cpp ********************************...

dgjm4087的博客 142

HDU 5375 Gray code //递推dp

题目描述HDOJ 5375 Gray code解题思路题目大意: 将二进制数转换为格雷码(二进制位上有若干个 ‘?’ , 则该位可为0 或 1) 若格雷码某位上为1,则得到相应位上的分数,求最大分数.转换规则: B (二进制) -> G (格雷码) 1 2 … n B1{B}_{1} B2{B}_{2} … Bn{B}_{n} G1{G}_{1} = B1{B

FZU_zyt的专栏_(:з」∠)_ 445

hdu 5375 Gray code(dp)

题目链接:hdu 5375 Gray code 二进制a[1], a[2] a[3] ....对应的Gray code 为a[1], a[1]^a[2], a[2]^a[3] ... #include #include #include using namespace std; const int maxn = 200005; char S[maxn]; int N,

不慌不忙、不急不躁 625

hdu 5375 Gray code (dp)

hdu 5375 Gray code (dp)tags: acm 今年多校的一道简单题.做之前和队友讨论了一下,成功说服队友这题贪心可破,结果我敲的时候却强行dp过了╮(╯▽╰)╭不过后来队友又用贪心过了一遍,貌似比我的代码快一点点.话说我很好奇要是不知道二进制转格雷码的方式的话这题要怎么玩? 题意:给你一个字符串B,B中包含’0’,’1’及’?’,其中’?’代表这位不确定,可能为’0’也可能为

学无涯 562

[HDU 5375 Gray code] 15多校赛DP

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5375 Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 866    Accepted Submission

chenningGo的博客 598

HDU 5375(2015多校7)-Gray code(dp)

题目地址:HDU 5375 题意:给你一个二进制串,带’?’的位置可以由你来决定填’1’还是’0’,补充完整之后转换成格雷码表示,每一个位置都有一个权值a[i],只有格雷码为’1’的位可以加上权值,问你最终权值之和最大为多少。 思路:首先要明白二进制码和格雷码是如何转换的: dp[i][0]表示第i位为0的时候的最大值,dp[i][1]表示第i位为1的时候的最大值。对于第i位的最大值由dp[i

Rocky0429 1489

hdu5375Gray code(dp)

Gray codeTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 384    Accepted Submission(s): 216Problem DescriptionThe reflected binary code, also kn

Nature_Ran的专栏 329
上一篇: HDU 1300 Pearls(DP)
下一篇: Uva 12075 Counting Triangles(容斥)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值