1035 简单瞎搞题 线性DP bitset

分析:

很明显的一道线性DP,就类似装箱问题

不过时间复杂度和空间复杂度太大了,就得用到bitset<N>

N最多开到1e7,不过开到1e7会报错(可能太大了),开到1e6 也会报错

//-------------------------代码----------------------------

//#define int LL
const int N =1001000;
int n,m;

void solve()
{
cin>>n;
bitset<N> ans;int l,r;
cin>>l>>r;
for(int i = l;i<=r;i++) ans[i * i] = 1;
for(int i = 1;i<n;i++) {
cin>>l>>r;
bitset<N> tmp;
for(int j = l;j<=r;j++) {
tmp |= ans << j * j;
}
ans = tmp;
}
cout<<ans.count();
rt;
}

signed main(){
clapping();TLE;

// int t;cin>>t;while(t -- )
solve();
// {solve(); }
return 0;
}

/*样例区


*/

//------------------------------------------------------------

posted @ 2022-07-12 15:59  er007  阅读(16)  评论(0编辑  收藏  举报