RT,我 hack 了一篇题解,请求管理撤下。
链接1 这个的最后一篇。
链接2
hack 数据如下:
10
4
2
3
7
9
正确输出是 0
,而他输出 1
。
此外,这道题目 O(2n) 做法显然过不了,但是,我尝试使用了一次 O(2n) 的 搜索过,然后居然 AC 了。
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
const int INF=35;
int v,n,a[INF],ans;
void DFS(int x,int sum) {
if (sum>v) return;
if (x>n) {
ans=max(ans,sum);
return;
}
DFS(x+1,sum+a[x]);
DFS(x+1,sum);
}
signed main()
{
scanf("%d %d",&v,&n);
for (int i=1; i<=n; i++) scanf("%d",&a[i]);
DFS(1,0);
printf("%d\n",v-ans);
return 0;
}
建议加强数据。