求助为什么爆〇
查看原帖
求助为什么爆〇
300078
pengyule楼主2020/5/25 17:05
#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
using namespace std;
typedef long long ll;
ll n,m;
ll a[205],k[205],t[100010];
map <ll,int> book;
void dfs(ll index,ll sum)
{
	if(sum>500000) return;
	if(index==n+1) return;
	ll w;
	for(ll i=0;i<=a[index];i++)
	{
		w=sum+i*k[index];
		if(!book[w])
		{
			book[w]=1;
			dfs(index+1,w);	
		}
	}
}
int main()
{
	//freopen("watch.in","r",stdin);
	//freopen("watch.out","w",stdout);
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d %d",&k[i],&a[i]);
	dfs(1,0);
	for(int i=1;i<=m;i++) 
	{
		scanf("%d",&t[i]);
		if(book[t[i]]) puts("Yes");
		else puts("No");
	}
	return 0;
}

大家好,我觉得这个代码应该可以过几个点的,可是全部都会WA,故求助,望解答,谢谢。

2020/5/25 17:05
加载中...