http://acm.hdu.edu.cn/showproblem.php?pid=6494

题意

一个长n字符串(n,1e4),'A'代表A得分,'B'代表B得分,'?'代表不确定,一局比赛先得11分获胜,10比10以后先得两分者获胜,问你他们最多能比多少局

题解

  • 定义\(dp[i][j][k]\)为第i个字符j比k的最大局数

    • 10比10: \(dp[i][10][10] ->dp[i+1][9][9]\)
    • j=11 or k=11:\(dp[i][j][k] + 1-> dp[i+1][0][0]\)
    • 其他情况:$dp[i][j][k] -> dp[i+1][j+1][k]or dp[i+1][j][k+1]

代码

#include<bits/stdc++.h>
#define MAXN 10005
using namespace std;
const int inf=1e9+5;
int T,dp[MAXN][20][20];
char s[MAXN];
struct N{int x,y,z;N(int x=0,int y=0,int z=0):x(x),y(y),z(z){}};
N cal(int i,int j){
if(i==11||j==11)
return N(0,0,1);
else{
if(i==10&&j==10)return N(9,9,0);
else return N(i,j,0);
}
}
int main(){
cin>>T;
while(T--){
scanf("%s",s);
memset(dp,-1,sizeof(dp));
int n=strlen(s);
dp[0][0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<=10;j++){
for(int k=0;k<=10;k++){
if(dp[i-1][j][k]>=0){
if(s[i-1]=='A'||s[i-1]=='?'){
N tp=cal(j+1,k);
dp[i][tp.x][tp.y]=max(dp[i][tp.x][tp.y],dp[i-1][j][k]+tp.z);
}
if(s[i-1]=='B'||s[i-1]=='?'){
N tp=cal(j,k+1);
dp[i][tp.x][tp.y]=max(dp[i][tp.x][tp.y],dp[i-1][j][k]+tp.z);
}
}
}
}
}
int ans=0;
for(int i=0;i<=10;i++)for(int j=0;j<=10;j++)ans=max(ans,dp[n][i][j]);
printf("%d\n",ans);
}
}

最新文章

  1. layout优化实践
  2. Android菜鸟成长记2-内部类
  3. ServiceStack.OrmLite 笔记8 -还是有用的姿势
  4. 【又见LCS】NYOJ-37 回文字符串
  5. inux2.6.xx内核代码分析( 72节)
  6. Linux 下 scp 传输文件脚本
  7. ORACLE创建OEM是老爱报的错误【weber出品】
  8. http Post 请求一网络资源返回字符串
  9. Swift - 创建代理协议实现页面间参数传递和方法调用
  10. 清掉kugo 7 和千千静听的广告
  11. OpenCV3.0.0+win10 64位+vs2015环境的下载,安装,配置
  12. CoreJavaE10V1P3.9 第3章 Java的基本编程结构-3.9 大数值(Big Numbers)
  13. Druid的简介及功能
  14. java Callable创建线程
  15. fidder显示 请求响应时间
  16. 我的 $OI$, 退役前写点东西
  17. Spring task定时任务执行一段时间后莫名其妙停止的问题
  18. MVC 翻頁的那些坑
  19. TNS
  20. call与apply简单介绍

热门文章

  1. 3. 语法&quot;陷阱&quot;
  2. 内核态发生非法地址访问是否会panic
  3. python多进程multiprocessing Pool相关问题
  4. PyCharm 2017: Remote debugging using remote interpreter doesn&#39;t work
  5. Alpine Linux 安装 lxml Pillow 失败
  6. 依赖注入在 dotnet core 中实现与使用:3 使用 Lazy&lt;T&gt; 延迟实例化
  7. 转载:ubuntu下编译安装nginx及注册服务
  8. 简单解决 VMWare “无法打开内核设备:\\Global\\vmx86”错误
  9. 投色子--html demo
  10. python基础(31):进程(一)