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. js 或运算

    表达式a && 表达式b : 计算表达式a(也可以是函数)的运算结果, 如果为 True, 执行表达式b(或函数),并返回b的结果: 如果为 False,返回a的结果: 表达式a || ...

  2. mysql 各项操作流程

    启动mysql:进入命令行输入:net start mysql 如果失败则显示:服务名无效,需跳转到指定Bin目录下进行启动mysql, 成功则进行下一步:登陆 :mysql -uroot -proo ...

  3. 转载:jquery 对 Json 的各种遍历

    概述 JSON(javascript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式 ...

  4. Javase 简单代码练习

    public class Test10 { public static void main(String[] args) { System.out.println("------------ ...

  5. 可横向滑动的vue tab组件

    示例 前端使用技术:框架->vue 组件>ly-tab一个用于移动端的可触摸滑动具有回弹效果的可复用Vue组件 ly-tab 介绍地址 ly-tab npm地址 使用步骤 1,引入包,定义 ...

  6. linux 结构需要清理 (structure needs cleaning)

    下面操作会删除挂载点所有文件,注意备份. df -T 查看出错的挂载点对应的文件系统和文件系统类型   然后umount这个文件系统 umount /dev/sda1 然后文件系统类型不同操作不同  ...

  7. 【ACM-ICPC 2018 南京赛区网络预赛 A】An Olympian Math Problem

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 估计试几个就会发现答案总是n-1吧. 队友给的证明 [代码] #include <bits/stdc++.h> #def ...

  8. JavaScript原生值与JSON的转换

    ---------------------------------- ---------------------------- stringify方法的另外两种参数: ---------------- ...

  9. 2015 Multi-University Training Contest 7 hdu 5378 Leader in Tree Land

    Leader in Tree Land Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  10. Python模块路径查找

    本文主要介绍如何查找某个Python模块的绝对路径,下面以opencv模块的查找为例.有两种方法 第一种方法 打开一个终端,输入 python -v import cv2 最后一行显示如下 第二种方法 ...