#include<cstdio> #define mod 1000000 int t, a, s, b, c[201], dp[4001] = { 1 }, r; int main() { scanf("%d %d %d %d", &t, &a, &s, &b); for (int i = 0, x; i < a; i++) scanf("%d", &x), c[x]++; for (int i = 1; i <= 200; i++) for (int j = b; j >= 1; j--) for (int k = 1; k <= c[i] && j >= k; k++) dp[j] = (dp[j] + dp[j - k]) % mod; for (int i = s; i <= b; i++) r = (r + dp[i]) % mod; printf("%d", r); return 0; }
2092번: 집합의 개수 - bounded knapsack로 풀어보기
https://www.acmicpc.net/problem/2092
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기