看一下筛法80为什么
  • 板块P1651 塔
  • 楼主crosaa
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/10/30 10:34
  • 上次更新2023/11/4 01:57:08
查看原帖
看一下筛法80为什么
477676
crosaa楼主2021/10/30 10:34
#include <iostream>
#include <cstdio>
using namespace std;
inline int read()
{
	int x = 0, f = 1;
	char ch=getchar();
	while(ch < '0' || ch > '9'){ if(ch == '-') f = -1;ch = getchar(); }
	while(ch >= '0'&&ch <= '9'){ x = (x<<1) + (x<<3) + ch - '0';ch = getchar(); }
	return x * f;
}
const int Maxn=5e5+15;
int n;
int a[55];
bool f[Maxn];
int main()
{
	n=read();
	for(int i = 1; i <=n; i ++ )
	{
		a[i] = read();
	}
	f[0]=1;
	for(int i = 1; i <= n; i ++ )
	{
		for(int j = Maxn - a[i] - 1;j >= 0; j -- )
		{
			if(f[j])
			{
				f[j + a[i]]=1;
			}
		}
	}
	for(int i = Maxn - 15; i >= 1; i -- )
	{
		if(i%2 == 0 && f[i] && f[i / 2])
		{
			printf("%d", i / 2);
			return 0;
		}
	}
	printf("-1");

	return 0;
}


2021/10/30 10:34
加载中...