结合简单的写步骤然后理解
理解加感觉
#include <bits/stdc++.h> using namespace std; int s,n; int T[15],L[15],D[15]; bool vis[15]; int flag; void dfs(int plane,int time){ if(plane>n){ flag=1; return; } for(int i=1;i<=n;i++){ if(vis[i])continue; if(time>T[i]+L[i])continue; vis[i]=true; int t=time; if(t<T[i])t=T[i]; dfs(plane+1,t+D[i]); vis[i]=false; } } int main() { cin>>s; while(s--){ cin>>n; for(int i=1;i<=n;i++){ cin>>T[i]>>L[i]>>D[i]; } flag=0; dfs(1,0); cout<<(flag==1?"YES":"NO")<<'\n'; } return 0; }