记录一下三星题目 暴力法 神秘餐馆 代码核心部分

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