小蒟蒻求助
查看原帖
小蒟蒻求助
427117
cxoi1004楼主2023/10/13 19:00

小蒟蒻求助,打的BFS,样例都错了QAQ

#include<bits/stdc++.h>
using namespace std;
int maxn;
struct SD
{
	int now,step;
}q[351*351];
int n,m;
bool used[35100];
int a[351],b[351];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		maxn=max(maxn,a[i]);
	}
	maxn*=n;
	for(int i=1;i<=m;i++) cin>>b[i];
	int t=1,w=1;
	q[t].now=a[1];
	q[t].step=1;
	used[a[1]]=1;
	while(t<=w)
	{
		for(int i=1;i<=m;i++)
		{
			int nx=q[t].now+a[q[t].step];
			if(nx>=1&&nx<=maxn&&!used[nx])
			{
				w++;
				q[w].now=nx;
				q[w].step=q[t].step+b[i];
				used[nx]=1;
			}
			if(q[t].step>=n)
			{
				cout<<q[w].now;
				return 0;
			}
		}
		t++; 
	}
	cout<<0;
	return 0;
}
2023/10/13 19:00
加载中...