思路就是标题,代码上传格式比较奇怪,随便看看
参考代码:
#include <bits/stdc++.h>
using namespace std;
const int N=20;
int T,n,ans;
int a[N],b[N],c[N],st[N];
bool d[N];
void dfs(int x,int y,int z)
{
if(z==1)
{
d[x]=1;
}
if(z==n)
{
if(a[x]+b[x]>=y)
{
ans=1;
}
return ;
}
if((a[x]+b[x])<y)
{
return ;
}else if(a[x]<=y&&(a[x]+b[x])>=y)
{
for(int i=1;i<=n;i++)
{
if(d[i]!=1)
{
d[i]=1;
// st[z]=x;
dfs(i,y+c[x],z+1);
// st[z]=0;
d[i]=0;
}
}
}else if(a[x]>y)
{
for(int i=1;i<=n;i++)
{
if(d[i]!=1)
{
d[i]=1;
// st[z]=x;
dfs(i,a[x]+c[x],z+1);
// st[z]=0;
d[i]=0;
}
}
}
if(z==1)
{
d[x]=0;
}
}
int main()
{
cin>>T;
for(int i=0;i<T;i++)
{
ans=0;
cin>>n;
int x=1000000;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i]>>c[i];
}
for(int i=1;i<=n;i++)
{
dfs(i,0,1);
}
if(ans==1)
{
cout<<"YES"<<'\n';
}else
{
cout<<"NO"<<'\n';
}
}
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复