求救
查看原帖
求救
183685
Tyler0819楼主2020/7/20 20:49

不知为何,一直错第七个点

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100 + 5;
int n,m,r;
struct ladylady
{
    int money,rp,time;
}lady[N];
int f[N][N];
int t[N][N];
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        cin >> lady[i].money >> lady[i].rp >> lady[i].time;
    }
    cin >> m >> r;
    for(int i = 1; i <= n; i++)
    {
        for(int j = r; j >= lady[i].rp; j--)
        {
            for(int k = m; k >= lady[i].money; k--)
            {
                if(f[j][k] < f[j - lady[i].rp][k - lady[i].money] + 1)
                {
                    f[j][k] = f[j - lady[i].rp][k - lady[i].money] + 1;
                    t[j][k] = t[j - lady[i].rp][k - lady[i].money] + lady[i].time;
                }
                else if(f[j][k] == f[j - lady[i].rp][k - lady[i].money] + 1)
                {
                    t[j][k] = min(t[j][k], t[j - lady[i].rp][k - lady[i].money] + lady[i].time);
                }
                else
                {
                    f[j][k] = f[j][k];
                    t[j][k] = t[j][k];
                }
            }
        }
    }
    cout << t[m][r] << endl;
    return 0;
}
2020/7/20 20:49
加载中...