牛客寒假基础集训营 | Day1 I题—nozomi和字符串J

在这里插入图片描述

一. 题目描述

二. 输入描述和示例

三. 代码

#include<iostream>
using namespace std;
#define ll long long
ll dp[322222]={0};
string ss;
int main(){
    ll n,a,b,c;
    cin >> n >> a >> b >> c;
    cin >> ss;
    for(ll i=0;i<n;i++){
        if(i>0)dp[i]=dp[i-1];
        if(i>=3&&ss[i-3]=='n'&&ss[i-2]=='i'&&ss[i-1]=='c'&&ss[i]=='o')
            dp[i]=max(dp[i],dp[i-3]+a);
        if(i>=5&&ss[i-5]=='n'&&ss[i-4]=='i'&&ss[i-3]=='c'&&ss[i-2]=='o'&&ss[i-1]=='n'&&ss[i]=='i')
            dp[i]=max(dp[i],dp[i-5]+b);
        if(i>=9&&ss[i-9]=='n'&&ss[i-8]=='i'&&ss[i-7]=='c'&&ss[i-6]=='o'&&ss[i-5]=='n'&&ss[i-4]=='i'&&ss[i-3]=='c'&&ss[i-2]=='o'&&ss[i-1]=='n'&&ss[i]=='i')
            dp[i]=max(dp[i],dp[i-9]+c);
    }
    cout << dp[n-1] << endl;
    return 0;
}
发布了137 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34170700/article/details/104173733