用了个很笨的办法~
同时学会了使用string.h里的memset
1: #include<iostream>
2: #include<string.h>
namespace std;
int maxv=2000000;
int v[maxv]={0};
bool can[maxv]={0};
int n=0,totv=0;
8:
void get_input()
10: {
sizeof(can));
12: can[0]=1;
13: cin >> totv;
14: cin >> n;
int i=0;i<n;i++) cin >> v[i];
16: }
17:
int work()
19: {
int i=0;i<n;i++)
int j=totv+1;j>=0;j--){
if (can[j]) can[j+v[i]]=true;
23: }
return i;
25: }
26:
int main()
28: {
29: get_input();
30: cout << totv-work() << endl;
31: }