与题解思路相似,但是#9#10TLE求助
查看原帖
与题解思路相似,但是#9#10TLE求助
376467
QDHSLGYYJK楼主2021/1/24 19:57
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<bitset> 
using namespace std;
int a[105],cnt[10005],l,sum=0,n,m=2147483647;
bitset<10005>b;
int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;++i){
		sum=0;l=0;
		scanf("%d",&a[++l]);
		while (a[l]!=-1){
			sum+=a[l];
			scanf("%d",&a[++l]);
		}
		--l; 
		m=min(sum,m);
		b.reset();b[0]=1;
		for (int j=1;j<=l;++j)
			for (int k=m;k>=a[j];--k)
				b[k]=b[k]||b[k-a[j]];
		for	(int j=0;j<=m;++j)
			cnt[j]+=b[j];
	}
	for (int i=m;i>=0;--i)
		if (cnt[i]==n){
			printf("%d",i);
			break;
		}
	return 0;
}
2021/1/24 19:57
加载中...