简单瞎搞题 |
题目描述
一共有 n个数,第 i 个数是 x
i
x
i 可以取 [l
i , r
i] 中任意的一个值。
设
输入描述:
第一行一个数 n。 然后 n 行,每行两个数表示 li,ri。
输出描述:
输出一行一个数表示答案。
AC:
#include<bits/stdc++.h>
using namespace std;
int n;
bitset<1000010> ans,tmp;
int main() {
scanf("%d",&n);
ans.reset();
ans[0]=1;
for(int i=1;i<=n;i++) {
tmp.reset();
int l,r;scanf("%d%d",&l,&r);
for(int j=l;j<=r;j++) tmp|=ans<<(j*j);
ans=tmp;
}
cout<<ans.count()<<endl;
return 0;
}