Codeforces Round #442 (Div. 2) C. Slava and tanks

来源:互联网 发布:java事务怎么实现 编辑:程序博客网 时间:2024/06/18 11:28

陷入了靠前焦虑状态,好长时间没做过题了吧,水题一个没想起来。。




-------------------因为热爱,所以执着-----------------

继续补题,不急慢慢来。

#include<bits/stdc++.h>using namespace std;#define pb push_back#define mp make_pairchar s[5005];int dp[5005][5],n;int solve(int pos,int now){    if(now>3||pos>n)return 0;    if(dp[pos][now]!=-1)return dp[pos][now];    int res=0;    if(now==1||now==3)    {        if(s[pos]=='a')            res=max(res,1+solve(pos+1,now));            else res=max(res,solve(pos+1,now));    }    if(now==2)    {        if(s[pos]=='b')            res=max(res,1+solve(pos+1,now));            else res=max(res,solve(pos+1,now));    }    if(now<3)    {        res=max(res,solve(pos,now+1));    }    dp[pos][now]=res;    return dp[pos][now];}int main(){scanf("%s",s+1);n=strlen(s+1);memset(dp,-1,sizeof(dp));printf("%d\n",solve(1,1));    return 0;}

原创粉丝点击