| 比赛 | 
    叫图论的DP题 | 
    评测结果 | 
    AAAAAAAAA | 
    | 题目名称 | 
    组合数 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    kZime | 
    运行时间 | 
    0.014 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    2.24 MiB  | 
    | 提交时间 | 
    2017-08-30 21:04:46 | 
显示代码纯文本
# include <cstdio>
# include <algorithm>
using namespace std;
typedef long long ll;
ll f[51][5023], n, a[51];
int main() { 
    freopen("conbination.in", "r", stdin);
    freopen("conbination.out", "w", stdout);
    scanf("%d", &n);
    int u = n * 100;
    ll sum = 0;
    f[0][0] = 1;
    for(int i = 1; i <= n; i++) { 
        int a;
        scanf("%d", &a);
        sum += a;
        for(int j = u; ~j; j--) f[i][j] += f[i - 1][j];
        for(int j = u - a; ~j; j--) f[i][j + a] += f[i - 1][j];
    }
    ll cnt = 0, tot = 0;
    int l, r;
    scanf("%d %d", &l, &r);
    for(int i = 0; i <= sum; i++) { 
        if(i >= l && i <= r) cnt += f[n][i];
        tot += f[n][i];
    }
    printf("%.4lf\n", 1.0 * cnt / tot);
}