这里写链接内容
题意描述:
wrz 有 n 道题,第 i 道题 xi 可以取 [ai,bi]中的整数作为难度。
由于 yhx 特别垃圾,所以在 wrz 看来难度为
xi
的题目在 yhx 看来难度为
x2i
。
设
S=∑ni=1x2i
,现在 yhx 想知道可能有多少种不同的 S。
暴力最坏情况下有
O(108)
。通过bitset把常数降到
132
就科学了。
#include<cstdio>
#include<algorithm>
#include<bitset>
#define R register
using namespace std;
bitset<1011010>f[2];
int n,a[105],b[105];
int main()
{
freopen("t12.in","r",stdin);
scanf("%d",&n);
R int i,j,h;
for(i=1;i<=n;++i)scanf("%d%d",&a[i],&b[i]);
f[0].set(0);
for(h=1,i=1;h<=n;++h,i^=1)
{
f[i].reset();
for(j=a[h];j<=b[h];++j)
f[i]|=(f[i^1]<<(j*j));
}
printf("%d",f[n&1].count());
return 0;
}