2 条题解
-
0
#include<bits/stdc++.h> using namespace std; int n, m, a[35], ans; void dfs(int sa, int sb, int k)//始终坚持sa不超过m { ans=min(ans, m-sa); if(k<=n) { if(sa+a[k]<=m)dfs(sa+a[k], sb , k+1); dfs(sa , sb+a[k] , k+1); } } int main() { scanf("%d%d", &m, &n); for(int i=1;i<=n;i++) scanf("%d", &a[i]); ans=999999999; dfs(0,0,1); printf("%d\n", ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; int n,m,a[35],ans; void dfs(int sa,int sb,int k)//始终坚持sa不超过m { ans=min(ans,m-sa); if(k<=n) { if(sa+a[k]<=m)dfs(sa+a[k], sb , k+1); dfs(sa , sb+a[k] , k+1); } } int main() { scanf("%d%d",&m,&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); ans=999999999; dfs(0,0,1); printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 697
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 91
- 已通过
- 39
- 上传者