蒟蒻求助,请问为什么这样回溯只有30pts?
查看原帖
蒟蒻求助,请问为什么这样回溯只有30pts?
388382
ScriptAccess楼主2024/3/12 20:39
#include<bits/stdc++.h>
using namespace std;
int flag,n,b,ti,p[1001],t[12],d[12],l[12];
void dfs(int x)
{
	if(x==n+1) 
	{
		flag=1;
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(x==1) ti=t[i];
		if(p[i]) continue;
		if((t[i]<=ti)&&(ti<=t[i]+d[i]))
		{
			p[i]=1;
			ti+=l[i];	
			dfs(x+1);
			ti-=l[i];
			p[i]=0;
		}	
		else if(t[i]>ti)
		{
			ti+=(t[i]-ti);
			p[i]=1;
			ti+=l[i];	
			dfs(x+1);
			ti-=l[i];
			ti-=(t[i]-ti);
			p[i]=0;	
		}
	}
}
int main()
{
	cin>>b;
	while(b--)
	{
		memset(p,0,sizeof(p));
		flag=0;
		cin>>n;
		for(int i=1;i<=n;i++)
		cin>>t[i]>>d[i]>>l[i];
		dfs(1);
		cout<<(flag?"YES":"NO")<<endl;
	}
	return 0;
}
2024/3/12 20:39
加载中...