Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!
我的博客:<但凡.
我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》
欢迎点赞,关注!
1、题目
2、题解
#include<iostream>
#include<cstring>
using namespace std;
const int N = 15;
int T, n;
int t[N], d[N], l[N];
bool st[N];
bool dfs(int pos, int end)//第几加以及结束时间
{if (pos > n) return true;for (int i = 1;i <= n;i++){if (st[i] == true) continue;if (end > t[i] + d[i]) continue;int newend = max(t[i], end) + l[i];st[i] = true;if (dfs(pos + 1, newend)) return true;st[i] = false;}return false;
}
int main()
{cin >> T;while (T--){memset(st, 0, sizeof st);cin >> n;for (int i = 1;i <= n;i++){cin >> t[i]>>d[i]>>l[i];}if (dfs(1, 0)) cout << "YES" << endl;else cout << "NO" << endl;}return 0;
}
好了,今天的内容就分享到这,我们下期再见!