记录一下三星题目 暴力法 神秘餐馆 代码核心部分
int n,m,budget;
cin>>n>>m>>budget;
char s[55];
int price[53][53];
int dp[53][53];
for(int i=1;i<=n;i++)
{
cin>>s+1;
for(int j=0;j<=m;j++)
{
if(s[j]>='0' && s[j]<='9')price[i][j]=s[j]-'0';
else if(s[j]>='a' && s[j]<='z')price[i][j]=s[j]-'a'+36;
if(s[j]>='A' && s[j]<='Z')price[i][j]=s[j]-'A'+10;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(i<=7)
dp[i][j]=price[i][j];
else
dp[i][j]=dp[i-7][j]+price[i][j];//第i-7天和第i天的第j道菜一起的价格
}
}
int buy[55];
for(int i = 1;i <=n;i++)
{
if(i >7){
budget+=dp[i-7][buy[i-7]];
}
int minmum = 0x3f3f3f3f;//设最小价格无穷大
for(int j = 1;j<=m;j++){
if(dp[i][j]<minmum){
minmum=dp[i][j];
buy[i]=j;
}
}
budget-=minmum;
if(budget <0){
cout << i-1 <<endl;
return 0;
}
}
cout << n <<endl;
return 0;
感谢连接中的大佬https://blog.csdn.net/qq_51015052/article/details/114881619