dp--bitset优化

摘要:
问题描述总数为。数字为,可以取任何值。Analysoftides C++的位集是位集头文件中的一个类似数组的结构。位集的每个元素只能是0或1,并且每个元素只能使用1位空间。我们可以使用位集的每一位来对应可以检索的数字。例如,10110000表示可以检索0、2、3。此时,可以检索4个。那么,可以检索到的相应数字是00001011,即4,6,7接受的代码#includeusingspacestd;#定义(a,b)内存集#definepiipair<int,int>constantiff=0x3f3f3f;成分最大值=201110;组成M=1e9+7;intn,m,k,ok;组成N=105;位集a,b;signedmin(){cin˃˃n;b[0]=1;对于{cin˃˃1˃r;对于{a|=b˂˂j*j;}b=a;a、 reset();}cout˂˂b。count()˂˂endl;return0;}

Problem Description

一共有(n)个数,第(i)个数是(x_i)(x_i)可以取([l_i , r_i])中任意的一个值。

(S = sum {x_i}^2),求(S)种类数。

Analysis of ideas

C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。

我们可以利用 bitset 的每一位对应可以取到的数字

比如说 10110000 代表可以取 0,2,3 ,此时来一个数4,那么对应可以取的数就是 00001011 ,也就是 4,6,7

Accepted code

#include <bits/stdc++.h>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define pii pair<int,int>
const int inf = 0x3f3f3f3f;
const int maxn = 201110;
const int M = 1e9+7;
int n,m,k,ok;
const int N = 105;
bitset<N*N*N> a, b; 

signed main()
{
    cin>>n;
    b[0] = 1;
    for(int i = 1,l,r; i <= n; i++) 
    {
        cin>>l>>r;
        for(int j = l; j <= r; j++)
        {
            a |= b << j*j;
        }
        b = a;
        a.reset();
    }
    cout<<b.count()<<endl;
    return 0;
}

免责声明:文章转载自《dp--bitset优化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tomcat Debug 启动python基于scrapy配置日志下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用rtklib处理GPS以及北斗数据详解

利用rtklib开源代码处理GPS以及北斗数据详解          在GNSS领域最基础的工作是这些GNSS系统的定位工作,对于绝大多数研究者,自己着手完成这些工作是一个“鸡肋”:完全独立设计的话费时费力,运用开源代码又很难弄懂。我当初也是如此。但想到毕竟开源代码已经做了很多工作,不用实在可惜,最终毅然决定咬紧牙关弄懂rtklib。尝试用过rtklib的...

RenderSprite小记

类型定义: 1 /** @private */ 2 public static const IMAGE:int = 0x01; 3 /** @private */ 4 public static const ALPHA:int = 0x02; //透明度变化 5 /** @private...

echarts实时数据图表

import React, { PureComponent } from 'react'; import ReactEcharts from 'echarts-for-react'; import moment from 'moment'; export defaultclass Charts extends PureComponent { getO...

C++(四十八) — string容器的基本操作

参考博客:https://blog.csdn.net/qq_37941471/article/details/82107077 https://www.cnblogs.com/danielStudy/p/7127564.html#top 1、声明一个字符串 标准库类型string表示可变长的字符序列,为了在程序中使用string类型,我们必须包含头文件:#...

eldialog添加拖拽功能

import Vue from 'vue' Vue.directive('dialogDrag', { bind(el, binding, vnode, oldVnode) { const dialogHeaderEl = el.querySelector('.el-dialog__header') const dragDom = e...

如何用webpack搭建vue项目?本文案例详解

前言:都2020年了,感觉是时候该学一波webpack了,趁着最近有时间,就学了一下,等把官网上的webpack结构和模块大概看了一遍之后,就感觉可以开始搭个项目实战一下了,从0开始,一步步记录下来 使用版本: webpack4.x 1.包含插件和loader * html: html-webpack-plugin clean-webpack...