#include<bits/stdc++.h>
using namespace std;
#define int long long
struct plane
{
int t,d,l;//如题
}a[16];
int n,f;
int bo[16];//标记
void dfs(int x,int tim)
{
if(x==n-1)
{
f=1;
return ;
}
else
{
for(int i=0;i<n;i++)
{
if(bo[i]==0&&a[i].t+a[i].d<tim)//最晚的时间都错过了,剪枝
return ;
else
{
if(bo[i]==0)
{
bo[i]=1;
if(a[i].t>tim)//确定开始降落的时间
{
dfs(x+1,a[i].t+a[i].l);
}
else
{
dfs(x+1,tim+a[i].l);
}
bo[i]=0;
}
}
}
}
}
signed main()
{
int T;
cin>>T;
while(T--)
{
f=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i].t>>a[i].d>>a[i].l;
for(int i=0;i<n;i++) {bo[i]=1,dfs(0,a[i].l+a[i].t),bo[i]=0;}//尝试以第i+1架飞机开始降落为起点
if(f==1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
/*泛舟沧海,立马昆仑*/
/*若你为了错过太阳而哭泣,那么你也将错过群星了*/
/*红了樱桃,绿了芭蕉*/
/*泛舟沧海,立马昆仑*/
/*若你为了错过太阳而哭泣,那么你也将错过群星了*/
/*红了樱桃,绿了芭蕉*/
/*
3 3
0 3
1 2
0 2
*/
P9241--DFS
最新推荐文章于 2024-07-19 19:11:19 发布