题目
1<=n<=40,1<=m<=1e18;
输入样例#1:
5 1000
100 1500 500 500 1000
输出样例#1:
8
01背包,m范围小的话可以使用。这里是错误的。因为m<=1e18;
#include<cstdio>
using namespace std;
typedef long long ll;
const int N=1e6+5e4;
int a[N];ll dp[N];
int main()
{
int n,m;scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dp[0]=1;