#include<bits/stdc++.h>
using namespace std;
const int N=11;
int n,m,t,ncd[N],cpy[N];
struct node{
    int ht,gl,cd;//伤害,释放时间,CD
}a[N];
void dfs(int T,int HP){//当前时间,BOOS当前血量
    if(T>=t)return;
    if(HP<=0){
        cout<<"菜就多练";
        exit(0);    
    }
    for(int i=1;i<=n;i++){
        if(ncd[i]>0)continue;
        memcpy(cpy,ncd,sizeof(ncd));
        for(int j=1;j<=n;j++)ncd[j]=max(ncd[j]-a[i].gl,0);
        ncd[i]=a[i].cd;//-a[i].gl;//
        dfs(T+a[i].gl,HP-a[i].ht);
        memcpy(ncd,cpy,sizeof(ncd));
    }
    memcpy(cpy,ncd,sizeof(ncd));
    for(int i=1;i<=n;i++) if(ncd[i]>0) ncd[i]--;
    dfs(T+1, HP);
    memcpy(ncd,cpy,sizeof(ncd));
}
int main(){
    cin>>n>>m>>t;
    for(int i=1;i<=n;i++){
        int x,y,z;
        cin>>x>>y>>z;
        a[i]={x,y,z};
    }
    dfs(0,m);
    cout<<"NO";
    return 0;
}

1 条评论

  • @ 2026-5-13 21:05:05

    喵喵喵
    虽然没认真看题目但它好像不用dfs吧?

    • 1

    信息

    ID
    21780
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    13
    已通过
    2
    上传者