解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h> #include<vector> using namespace std; int flag=0; class plane { public: plane(int a,int b,int c) { this->t=a; this->d=b; this->l=c; } int t; int d; int l; bool state=1; }; vector<plane>p; int count=0; void DFS(vector<plane>p,int x,int t) { for(int i=0; i<p.size(); i++) { if(flag==1) break; if(p[i].state==0) continue; if(t<=p[i].t) { if(x==p.size()-1) flag=1; p[i].state=0; DFS(p,x+1,p[i].t+p[i].l); p[i].state=1; } else if(t<=p[i].d+p[i].t) { if(x==p.size()-1) flag=1; p[i].state=0; DFS(p,x+1,t+p[i].l); p[i].state=1; } else continue; } } int main() { int t; cin>>t; while(t--) { flag=0; int n; cin>>n; for(int i=0; i<n; i++) { int a,b,c; cin>>a>>b>>c; p.push_back(plane(a,b,c)); } DFS(p,0,0); if(flag==1) { cout<<"YES"<<endl; p.clear(); } else { cout<<"NO"<<endl; p.clear(); } } return 0; }
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:790 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
a+b浏览:452 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:590 |
分糖果 (C语言代码)浏览:980 |
矩形面积交 (C语言代码)浏览:1433 |
输入输出格式练习 (C语言代码)浏览:883 |