2 solutions
-
1
简单点
#include <bits/stdc++.h> using namespace std; long long v , n , h[30] , dp[10005] = {1}; int main(){ cin >> v >> n; for(int i = 0;i < v;i++){ cin >> h[i]; } for(int i = 0;i < v;i++){ for(int j = h[i];j <= n;j++){ dp[j] += dp[j - h[i]]; } } cout << dp[n]; return 0; }
-
1
#include<iostream> using namespace std; const int maxn = 10000+10; long long d[maxn],a[30]; int N,V; int main() { cin>>N>>V; for(int i=1;i<=N;i++) cin>>a[i]; for(int i=0;i*a[1]<=V;i++) d[i*a[1]]=1; for(int i=2;i<=N;i++) for(int j=a[i];j<=V;j++) d[j] += d[j-a[i]]; cout<<d[V]; return 0; }
- 1
Information
- ID
- 1049
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 7
- Tags
- # Submissions
- 20
- Accepted
- 8
- Uploaded By