链接:https://www.nowcoder.com/acm/contest/132/C
来源:牛客网
一共有 n个数,第 i 个数是 xi
xi 可以取 [li , ri] 中任意的一个值。
设 ,求 S 种类数。
第一行一个数 n。 然后 n 行,每行两个数表示 li,ri。
输出一行一个数表示答案。
示例1
复制
5 1 2 2 3 3 4 4 5 5 6
复制
26
1 ≤ n , li , ri ≤ 100
题解:经分析知,总共只有不超过100万种情况,考虑开一个100万大小的bitset来计算。
#include
#include
using namespace std;
bitset<1000005>ans,tmp;
int n,l,r;
int main(void)
{
ans[0]=1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
tmp.reset();
scanf("%d%d",&l,&r);
for(int j=l;j<=r;j++)
tmp=tmp|(ans<