求救!不知道哪里错了
查看原帖
求救!不知道哪里错了
768270
__why楼主2023/8/11 17:03
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,y,z,tmp;
string s;
int dp1(int i,int j){
	if(i==0){
		if(s[i]=='a')return min(x,y+z);
		else return min(y,x+z);
	}
	if(j==0){
		if(s[i]=='a'){
			tmp = min(dp1(i-1,0)+x,dp1(i-1,0)+z+y);
		}else{
			tmp = min(dp1(i-1,0)+y,dp1(i-1,1)+z+x);
		}
	}else{
		if(s[i]=='a'){
			tmp = min(dp1(i-1,0)+z+x,dp1(i-1,1)+y);
		}else{
			tmp = min(dp1(i-1,1)+x,dp1(i-1,1)+z+y);
		}
	}
	return tmp;
}
signed main(){
	cin>>x>>y>>z;
	cin>>s;
	int len = s.size();
//	memset(dp,0x3f,sizeof(dp));
	cout<<dp1(len,0);
}
2023/8/11 17:03
加载中...