hdu5375 Gray code(简单DP)

如何利用通达信进行选股集合操作 每个交易者实际上都有自己的选股策略,这是必然的,也会有自己的主观干预,但是还是需要从客观热点股票进行一个比对的,才能说主观和客观相结合不至于​偏离方向。 这几天我也发了节前最后一天我的选股策略盘中的选择结果, 我也从网上拿到了热点股票池,当拿到之后你会发现如何从几十个股票热点股票选出核心票,这就是个问题了,这里面一定要通过股价涨跌幅来进行过滤,而不是通过指标,因为一切指标都是根据价格变化而改变的了,所以​这一步不要走弯路。 1、把拿到的热点股票名单,导入通达信自定义板块 2、删除 阅读详情


Link: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): 477    Accepted Submission(s): 281


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
 

Source
 

官方题解:

##1007. Gray code

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

AC code:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<string>
#include<algorithm>
#include<iostream>
#define LL long long 
#define MAXN 1000010
using namespace std;
const int INF=0x3f3f3f3f;
const int N=555;
int a[MAXN];
LL dp[200002][2];
LL ans;
int main()
{
	int t,i,j,cas;
	scanf("%d",&t);
	cas=0;
	while(t--)
	{
		cas++;
		char bin[200002];
		scanf("%s",bin+1);
		int len=strlen(bin+1);
		for(i=1;i<=len;i++)
		{
			scanf("%d",&a[i]);
		}
		if(bin[1]=='1'||bin[1]=='?')
		{
			dp[1][1]=a[1];
			dp[1][0]=0;
		}
		else
		{
			dp[1][0]=dp[1][1]=0;
		}
		for(i=2;i<=len;i++)
		{
			if(bin[i]=='?')
			{
				if(bin[i-1]=='0')
				{
					dp[i][0]=dp[i-1][0];
					dp[i][1]=dp[i-1][0]+a[i];
				}
				else if(bin[i-1]=='1')
				{
					dp[i][0]=dp[i-1][1]+a[i];
					dp[i][1]=dp[i-1][1];
				}
				else if(bin[i-1]=='?')
				{
					dp[i][0]=max(dp[i-1][0],dp[i-1][1]+a[i]);
					dp[i][1]=max(dp[i-1][0]+a[i],dp[i-1][1]);
				}
			}
			else if(bin[i]=='0')
			{
				if(bin[i-1]=='0')
				{
					dp[i][0]=dp[i-1][0];
					dp[i][1]=dp[i-1][1];
				}
				else if(bin[i-1]=='1')
				{
					dp[i][0]=dp[i-1][1]+a[i];
					dp[i][1]=dp[i-1][1];
				}
				else if(bin[i-1]=='?')
				{
					dp[i][0]=max(dp[i-1][0],dp[i-1][1]+a[i]);
					dp[i][1]=dp[i-1][1];
				}
			}
			else if(bin[i]=='1')
			{
				if(bin[i-1]=='0')
				{
					dp[i][0]=dp[i-1][0];
					dp[i][1]=dp[i-1][0]+a[i];
				}
				else if(bin[i-1]=='1')
				{
					dp[i][0]=dp[i-1][0];
					dp[i][1]=dp[i-1][1];
				}
				else if(bin[i-1]=='?')
				{
					dp[i][0]=dp[i-1][0];
					dp[i][1]=max(dp[i-1][0]+a[i],dp[i-1][1]);
				}
			}
		}
		ans=max(dp[len][0],dp[len][1]);
		printf("Case #%d: %lld\n",cas,ans);
	}
}



沁恒CH32V208GBU6读写芯片内部FLASH:代码空间;使用OTA时候的代码空间;保存结构体到FLASH 沁恒CH32V208GBU6读写芯片内部FLASH:代码空间;使用OTA时候的代码空间;保存结构体到FLASH 阅读详情

相关推荐

无人机巡检提速3倍!YOLOv8n+OpenVINO让Jetson Nano跑25FPS,还能多飞25分钟

摘要(149字): 针对无人机巡检中Jetson Nano算力不足导致的帧率低、首次推理延迟高、续航短等问题,提出YOLOv8n+OpenVINO联合优化方案: 模型轻量化:YOLOv8n参数量仅3.2M(较v8s减少71%),Jetson Nano帧率从8FPS提升至15FPS(原生),绝缘子裂纹召回率仅降3%; OpenVINO加速:AUTO模式动态分配CPU/GPU算力,首次推理延迟从500ms降至200ms,帧率再优化至25FPS; 能效提升:功耗降低40%,单次续航延长25分钟。方案已落地电力/林

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1242

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

永磁同步电机控制笔记:foc控制原理通俗讲义

引言 到此为止,永磁同步电机控制相关文章已经写了7篇,其中simulink仿真系列文章5篇,控制笔记系列文章2篇,恍惚间感觉少了一篇概论,在此插入一篇,也算是对入坑电机控制一年半来的知识梳理。 文章目录引言一、同步电机是怎么转起来的二、什么样的旋转磁场效率最高三、怎么精准控制旋转磁场的方向四、怎样调节dq轴电流 一、同步电机是怎么转起来的 永磁同步电机结构如下: 外围是定子绕组,中间为永磁体,设...

搞电机的博客 2万+

HDU 5375 Gray code

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

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

【一步到位】Android Studio 实现安卓连接阿里云物联网云平台

最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

m0_73799445的博客 1万+

全志 mipi屏幕和触摸驱动调试记录

mipi屏幕与触摸调试记录

u011996684的博客 3219

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

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO如何选?

本文深度解析了GelSight、DIGIT、Taxim、GelSlim和TACTO五款主流触觉传感器的技术原理与核心特性。通过对比视觉传感与电学传感两大技术路径,为机器人灵巧抓取、精密检测等应用场景提供清晰的选型决策指南,帮助开发者根据项目需求在分辨率、响应速度、集成度与成本之间找到最佳平衡。

Black的专栏 930

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

【即插即用模块】Transformer篇 | TCSVT 2025 | DAFM:双注意力聚合+反向跨模态筛选,特征精准捕捉并融合!

本文提出了一种双模态注意力融合模块(DAFM),用于增强多模态图像融合任务中的特征交互。该模块通过双注意力聚合机制,结合自注意力与跨模态注意力,有效提升特征融合效果。DAFM采用可学习平衡因子动态调整注意力权重,并运用深度卷积降低计算复杂度。实验结果表明,该模块能显著提升多模态图像融合质量,适用于RGB-红外等双模态视觉任务。模块代码实现简洁,可直接集成到现有网络中作为特征融合层使用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 175

Xilinx/AMD公司7系列FPGA的ISERDESE2仿真的”天坑”(附verilog的源码vivado仿真工程)

研究LVDS输出接口的ADC与7系列(ZYNQ)FPGA对接过程中,在Vivado中搭建了ISERDESE2的仿真工程,仿真结果ISERDESE2的并行输出口一直输出X或Z,这个坑之大,耗费了我数天的时间,可以称为“天坑”了。同步复位的要求肯定是高于异步复位的,古话说得好“两害相权取其轻”,所以,跟古话对着干就对了!就当RST是同步复位吧,最后经过反复验证,发现。开始怀疑复位信号是否高电平持续时间不够长?但是没有查到复位时间的要求 : - (

FPGA艺术家的博客 171

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

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

m0_60898338的博客 1118

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

hdu5375 Gray code(DP)

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

hahahaha 747

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

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

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

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

[hdu5375 Gray code]DP

题意:给一个二进制码,其中有一些位上为'?',对每个问号确定是'0'还是'1',最后以它对应的格雷码来取数,第i位为1则取第i个数,求取得的数的和的最大值。 思路:二进制码B转换成格雷码G的方法是,Gi=Bi^Bi+1,Gn=Bn。所以第i位如果为'?',那么选'1'还是'0'只会影响邻位,于是用dp即可解决。 #include <map> #includ...

weixin_30906185的博客 87
上一篇: XMUT 简单图论专场(拓扑排序、最小生成树、贪心)
下一篇: hdu5373 The shortest problem(迭代模拟+同余定理)
林下的码路
博客等级 码龄12年 295粉丝 506原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值