求求了,玄关
查看原帖
求求了,玄关
847597
fly_and_goal楼主2024/11/22 21:54

调代码

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],f[10000005];
int main()
{
	//freopen("watch.in","r",stdin);
	//freopen("watch.out","w",stdout);
	int p=1,o,u;
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld%lld",&o,&u);
		int c=1;
		while(u>c)
		{
			u-=c;
			a[p]=o*c;
			c*=2;
			p++;
		}
		a[p]=u*o;
		p++;
	}
	f[0]=1;
	for(long long i=1;i<=p;i++)
	{
		for(long long j=500000;j>=a[i];j--)
		{
			if(f[j-a[i]]==1) f[j]=1;
		}
	}
	long long h;
	for(long long i=1;i<=m;i++)
	{
		scanf("%lld",&h);
		if(f[h]==1) printf("Yes\n");
		else printf("No\n");
	}
}
2024/11/22 21:54
加载中...