4957. 飞机降落
作者:
logos--
,
2023-08-02 16:47:15
,
所有人可见
,
阅读 123
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int N = 1e5 + 7, M = 11;
constexpr int inf = 1E18, mod = 1e9 + 7;
int n, t[N], d[N], l[N];
bool vis[N];
inline bool dfs(int u, int dd) {
if(u == n) return true;
for (int i = 1; i <= n; i ++) {
if(!vis[i] && t[i] + d[i] >= dd) {
vis[i] = true;
if(dfs(u + 1, max(dd, t[i]) + l[i])) return true;
vis[i] = false;
}
}
return false;
}
inline void Main() {
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> t[i] >> d[i] >> l[i];
}
if(dfs(0, 0)) cout << "YES" << '\n';
else cout << "NO" << '\n';
for (int i = 1; i <= n; i ++) {
vis[i] = false;
}
}
signed main() {
cin.tie(nullptr)->sync_with_stdio(false);
int T = 1; cin >> T;
while(T --) Main();
return 0;
}