40pts....
查看原帖
40pts....
575655
Chtholly_is_cute楼主2023/11/21 20:14

记录 code:

#include<bits/stdc++.h>
using namespace std;
int h,m,h1,m1,tick;
int calctime(int h1,int m1,int h2,int m2){
    return abs(h2-h1)*60+abs(m2-m1);
}
int f[32767],t[32767],c[32767],p[32767];
int n;
int main(){
    scanf("%d:%d %d:%d %d",&h,&m,&h1,&m1,&n);
    tick=calctime(h,m,h1,m1);
    for(int i=1;i<=n;i++){
        scanf("%d%d%d",t+i,c+i,p+i);
    }
    for(int i=1;i<=n;i++){
        if(p[i]==0)
            for(int j=t[i];j<=tick;j++){
                f[j]=max(f[j],f[j-t[i]]+c[i]);
            }
        else{
            for(int q=1;q<=p[i];q++){
                for(int j=tick;j>=t[i];j--){
                    f[j]=max(f[j],f[j-t[i]]+c[i]);
                }
            }
        }
    }
    cout<<f[tick];
}
2023/11/21 20:14
加载中...