牛客练习赛22C

题目链接
题目描述:一共有 n个数,第 i 个数是 xi
xi 可以取 [li , ri] 中任意的一个值。
设 S=sigma(xi^2),求 S 种类数。
思路:通过bitset枚举所有结果

#include
#include
#include
#include
using namespace std ;
bitset<1000005> ans ,temp ;

int main(){
    int n,l,r;
    scanf("%d",&n);
    ans[0]=1;
    for(int i = 0 ; i< n ; i++){
        scanf("%d%d",&l,&r);
        temp.reset();
        for(int x=l;x<=r;x++){
            temp|=(ans<<(x*x));
        }
        ans =temp ;
    }
    printf("%d\n",ans.count());
    return 0;
}

你可能感兴趣的:(枚举)