zoukankan      html  css  js  c++  java
  • hdu6494 dp

    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
    ",ans);
        }
    }
    
  • 相关阅读:
    字体
    当前li的同级且不包含当前li
    溢出用省略号显示
    .NET Core中使用Cookie步骤
    .NET Core中使用Session步骤
    asp.net core 读取配置
    Asp.Net Core run on Ubuntu
    .net core中使用GB2312编码
    ubuntu mysql 安装
    samba的安装
  • 原文地址:https://www.cnblogs.com/VIrtu0s0/p/10815682.html
Copyright © 2011-2022 走看看