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