飞机降落
通过数据量得出
dfs+贪心
样例
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=11;
struct plane{
int t,d,l;
}p[N];
int n;
bool used[N];
bool dfs(int u,int time){
if(u==n)return true;
for(int i=1;i<=n;i++){
int t =p[i].t,d=p[i].d,l=p[i].l;
if(!used[i] && t+d>=time){
used[i]=true;
if(dfs(u+1,max(time,t)+l))return true;
used[i]=false;
}
}
return false;
}
int main(){
int T;
cin>>T;
while(T--){
cin>>n;
for(int i=1;i<=n;i++){
int t,d,l;
cin>>t>>d>>l;
p[i].t=t,p[i].d=d,p[i].l=l;
}
memset(used, 0, sizeof used);
if(dfs(0,0)) puts("YES");
else puts("NO");
}
return 0;
}