30pts求调,玄一关
  • 板块P1833 樱花
  • 楼主HeJietao
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/2 22:04
  • 上次更新2024/10/3 09:25:48
查看原帖
30pts求调,玄一关
1016673
HeJietao楼主2024/10/2 22:04
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int h1,h2,m1,m2,n,t[10005],c[10005],p[10005];
int f[1005];
int main(){
    scanf("%d:%d",&h1,&m1);
    scanf("%d:%d",&h2,&m2);
    int tim=60*(h2-h1)+m2-m1;
    scanf("%d",&n);
    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<=tim;j++){
                f[j]=max(f[j-t[i]]+c[i],f[j]);
            }
        }
        else{
            for(int j=tim;j>=t[i];j--){
                for(int k=1;k*t[i]<=tim&&k<=p[i];k++){
                    f[j]=max(f[j-k*t[i]]+k*c[i],f[j]);
                }
            }
        }
    }
    printf("%d",f[tim]);
    return 0;
}

求求了,卡了一个晚上QAQ

2024/10/2 22:04
加载中...