1 条题解
-
0117爱好者 (mengqingyu) LV 10 @ 2024-9-6 20:50:51
正解:
#include <bits/stdc++.h> using namespace std; #define int long long int n,m; int a[10]; int f[10010]; signed main() { cin>>n; for(int i=1;i<=8;i++) { cin>>a[i]; m+=a[i]*i; } if(m<=n) { cout<<m; return 0; } if(n<=8&&a[n]!=0) { cout<<n; return 0; } int k=n; for(int i=8;i>=1;i--) n%=i; cout<<k-n; }
- [ ] ---
#include <bits/stdc++.h> using namespace std; long long a[11],w,ans = 0; void dfs(long long i,long long c){ if(i == 9) ans = max(ans,c); else for(long long k = 0,j = min((w - c) / i,a[i]) ; k < 9 && j >= 0 ; k++,j--) dfs(i+1,c+i*j); } int main(){ cin >> w; for(int i = 1 ; i < 9 ; i++) cin >> a[i]; dfs(1,0); cout << ans << endl; return 0; }
- 1
信息
- ID
- 3185
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 129
- 已通过
- 6
- 上传者