您的位置:首页 > 其它

codeforces 550B Preparing Olympiad(枚举)

2015-06-26 17:09 441 查看
点击打开链接

题意:n门课,第i门难度为c[i],选择至少两门以上,使得总难度在l与r之间,且最高难度与最低难度之差不低于x。求总方案数

注意到n很小,于是想到可以通过状态压缩枚举每种可能。

# -*- coding: utf-8 -*-
n,l,r,x=map(int,raw_input().split())
c=map(int,raw_input().split())
ans=0
for i in xrange(1<<n):
    a=[]
    for j in xrange(n):
        if (i>>j)&1 :
            a.append(c[j])
    if len(a)>=2 and max(a)-min(a)>=x and sum(a)>=l and sum(a)<=r :
        ans+=1
print ans
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: