hdu 5375 Gray code 【 dp 】
dp[i][j]表示第i位取j的时候取得的最大的分数
然后分s[i]是不是问号,s[i-1]是不是问号这大的四种情况讨论
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; const int maxn = ;
int dp[maxn][];
int a[maxn];
char s[maxn];
int n; int main(){
int T;
scanf("%d",&T);
int kase = ;
while(T--){
cin >> (s+);
n = strlen(s+);
for(int i = ;i <= n;i++) scanf("%d",&a[i]); s[] = '';
memset(dp,,sizeof(dp)); for(int i = ;i <= n;i++){
if(s[i] == '?'){
if(s[i-] == '?'){
dp[i][] = max(dp[i-][] + a[i],dp[i-][]);
dp[i][] = max(dp[i-][] + a[i],dp[i-][]);
}
else{
if(s[i-] == '') dp[i][] = dp[i-][],dp[i][] = dp[i-][] + a[i];
else dp[i][] = dp[i-][] + a[i],dp[i][] = dp[i-][];
}
}
else{
if(s[i-] == '?'){
if(s[i] == '') dp[i][] = max(dp[i-][],dp[i-][] + a[i]);
else dp[i][] = max(dp[i-][] + a[i],dp[i-][]);
}
else{
if(s[i] == s[i-]) dp[i][s[i]-''] = dp[i-][s[i-]-''];
else dp[i][s[i]-''] = dp[i-][s[i-]-''] + a[i];
}
}
// printf("dp[%d][0] = %d dp[%d][1] = %d\n",i,dp[i][0],i,dp[i][1]);
}
printf("Case #%d: ",++kase);
if(s[n] == '?') printf("%d\n",max(dp[n][],dp[n][]));
else printf("%d\n",dp[n][s[n]-'']);
}
return ;
}
话说比赛的时候,题目的意思都没有读懂------
诶---
加油啊---goooooo---
hdu 5375 Gray code 【 dp 】的更多相关文章
- HDU 5375——Gray code——————【dp||讨论】
Gray code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- hdu 5375 - Gray code(dp) 解题报告
Gray code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- HDU 5375 Gray code(DP)
题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...
- HDU 5375 Gray code (简单dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Oth ...
- 2015 Multi-University Training Contest 7 hdu 5375 Gray code
Gray code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- HDU 5375 Gray code(2015年多校联合 动态规划)
题目连接 : 传送门 题意: 给定一个长度为的二进制串和一个长度为n的序列a[],我们能够依据这个二进制串得到它的Gray code. Gray code中假设第i项为1的话那么我们就能够得到a[i] ...
- hdu 5375 Gray code dp
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; cons ...
- HDU - 1176 免费馅饼 【DP】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1176 思路 因为刚开始的起点是固定的 但是终点不是固定的 所以我们可以从终点往起点推 dp[i][j] ...
- HDU 1158 Employment Planning【DP】
题意:给出n个月,雇佣一个人所需的钱hire,一个人工作一个月所需要的钱salary,解雇一个人所需要的钱fire,再给出这n个月每月1至少有num[i]个人完成工作,问完成整个工作所花费的最少的钱是 ...
随机推荐
- jdbc转账操作
public class cs{ public static void main(String[] args){ try{ Connection conn=JdbcUtils.getConnectio ...
- VGG 19
关于VGG19的一些参考资料 http://www.cnblogs.com/vipyoumay/archive/2017/11/23/7884472.html https://cloud.tencen ...
- Robot Framework(三)创建测试用例
2.2.1测试用例语法 基本语法 测试用例由关键字在测试用例表中构建.关键字可以从测试库或资源文件导入,也可以在测试用例文件本身的关键字表中创建. 测试用例表中的第一列包含测试用例名称.测试用例从包含 ...
- FFmpeg avcodec_send_packet压缩包函数
首先看一下FFmpeg关于该packet函数的注释: int avcodec_send_packet ( AVCodecContext * avctx, const AVPacket * ...
- SQL 到 NOSQL 的思维转变
转自:http://blogread.cn/it/article/3130?f=wb SQL 到 NOSQL 的思维转变 NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发 ...
- POJ 2377 Bad Cowtractors( 最小生成树转化 )
链接:传送门 题意:给 n 个点 , m 个关系,求这些关系的最大生成树,如果无法形成树,则输出 -1 思路:输入时将边权转化为负值就可以将此问题转化为最小生成树的问题了 /************* ...
- JavaScript原生值与JSON的转换
---------------------------------- ---------------------------- stringify方法的另外两种参数: ---------------- ...
- windows系统中软件开发常用的软件
1.windwos快速打开控制面板:热键+r打开运行框,输入control就打开windows的控制面板了 2.windows自带的远程桌面控制系统:mstsc -Microsoft terminal ...
- nyoj Wythoff Game(暴力枚举)
Wythoff Game ms | KB 描写叙述 近期ZKC同学在学博弈,学到了一个伟大的博弈问题--威佐夫博弈. 相信大家都学过了吧?没学过?没问题.我将要为你讲述一下这个伟大的博弈问题. ...
- jQuery取得循环列表的第一列值
有例如以下的表格: <table class="list_tab" id="personalDetail"> <tr class=" ...