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 】的更多相关文章

  1. HDU 5375——Gray code——————【dp||讨论】

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  2. hdu 5375 - Gray code(dp) 解题报告

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  3. HDU 5375 Gray code(DP)

    题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...

  4. HDU 5375 Gray code (简单dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Oth ...

  5. 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 ...

  6. HDU 5375 Gray code(2015年多校联合 动态规划)

    题目连接 : 传送门 题意: 给定一个长度为的二进制串和一个长度为n的序列a[],我们能够依据这个二进制串得到它的Gray code. Gray code中假设第i项为1的话那么我们就能够得到a[i] ...

  7. hdu 5375 Gray code dp

    #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; cons ...

  8. HDU - 1176 免费馅饼 【DP】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1176 思路 因为刚开始的起点是固定的 但是终点不是固定的 所以我们可以从终点往起点推 dp[i][j] ...

  9. HDU 1158 Employment Planning【DP】

    题意:给出n个月,雇佣一个人所需的钱hire,一个人工作一个月所需要的钱salary,解雇一个人所需要的钱fire,再给出这n个月每月1至少有num[i]个人完成工作,问完成整个工作所花费的最少的钱是 ...

随机推荐

  1. Kafka学习笔记(6)----Kafka使用Producer发送消息

    1. Kafka的Producer 不论将kafka作为什么样的用途,都少不了的向Broker发送数据或接受数据,Producer就是用于向Kafka发送数据.如下: 2. 添加依赖 pom.xml文 ...

  2. charles抓https设置

    1下载charles和破解包 2安装证书 打开charles的help->SSL Proxying->install charles root certificate 选择你要安装的列表里 ...

  3. 04 Django-ORM多表操作(进阶)

      一.创建模型 下面我们通过图书管理系统,来设计出每张表之间的对应关系. 通过上图关系,来定义一下我们的模型类. from django.db import models class Book(mo ...

  4. python简单的输入与输出

    1 首先利用python完成简单的输出,运行如下: python和c语言类似,但又有所不同,python开发快,语言简洁,我是这样对比学的 输出:print+空格+'要输出的内容',一定要是英文状态下 ...

  5. hibernate简单集合映射和获取

    简单集合映射(可以直接获取) // javabean设计 public class User { private int userId; private String userName; // 一个用 ...

  6. Python IO编程-读写文件

    1.1给出规格化得地址字符串,这些字符串是经过转义的能直接在代码里使用的字符串 需要导入os模块 import os >>>os.path.join('user','bin','sp ...

  7. jQuery点击图片放大显示原图效果

    HTML部分:<div id="append_parent"></div> JS代码部分: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  8. 用户登录记住用户名导致表单自动填充bug解决方法

    最近做项目出现了一个极其讨厌的bug:在用户登录网站时,浏览器会自动提示是否记住密码,当选择记住密码时,正常浏览网页,会发现有那么几个input输入框会自动填充用户名,非常讨厌, 于是就觉得挺简单的一 ...

  9. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第四篇【AppiumLibrary实用函数介绍】

    http://blog.csdn.net/deadgrape/article/details/50585677 通过前几篇的讲述,我相信大家已经对RF+Appium的框架已经有所了解了. 接下来我告诉 ...

  10. 接口(interface) 可以 new()吗???~

    比如 一个接口 A ,里面有一个方法fun1(),一般我们是先定义它的实现再引用它,比如 public class ImpA implements A{ public void fun1(){ //d ...