• bitset


    题目描述

    一共有 nnn个数,第 iii 个数 xix_ixi​​ 可以取 [ai,bi][a_i , b_i][ai​​,bi​​] 中任意值。
    S=∑xi2S = sum{{x_i}^2}S=xi​​2​​,求 SSS 种类数。

    输入格式

    第一行一个数 nnn。
    然后 nnn 行,每行两个数表示 ai,bia_i,b_iai​​,bi​​。

    输出格式

    输出一行一个数表示答案。

    样例

    样例输入

    5
    1 2
    2 3
    3 4
    4 5
    5 6

    样例输出

    26

    数据范围与提示

    1≤n,ai,bi≤1001 le n , a_i , b_i le 1001n,ai​​,bi​​100

    题意 : 给你 n 个数字,每个数的范围是 a - b , 问将 n 个数字的平方和累加最终的和可能有多少个

    思路分析 : 因为所有数据的范围均小于100,会发现最终最大的和是 1000000, 因此一个比较明显的暴力的做法就是 n^2*1000000

    代码示例 :

    #define ll long long
    const int maxn = 1e6+5;
    
    bitset<maxn>bs[2];
    int n;
    int a[105][2];
    
    void solve(){
        bs[0][0] = 1;
        int k = 1;
        
        for(int i = 1; i <= n; i++){
            bs[k].reset();
            for(int j = a[i][0]; j <= a[i][1]; j++){
                bs[k] |= (bs[k^1] << (j*j));        
            }
            k ^= 1;
        }
        k ^= 1;
        int ans = 0;
        for(int i = 0; i <= 1000000; i++) {
            if (bs[k][i]) ans++;
        }
        printf("%d
    ", ans);
    }
    
    int main() {
        //freopen("in.txt", "r", stdin);
        //freopen("out.txt", "w", stdout);
        
        cin >> n;
        for(int i = 1; i <= n; i++) scanf("%d%d", &a[i][0], &a[i][1]);
        
        solve();
        return 0;
    }
    
    东北日出西边雨 道是无情却有情
  • 相关阅读:
    数据库的隔离
    Maven的工程类型有哪些
    Redis中的常用命令哪些
    flume--exec源
    hadoop基本组件原理小总结
    Idea 激活
    hadoop中遇到的各种错误记录
    MySQL认知
    Python爬虫之post请求
    Python爬取ithome的一所有新闻标题评论数及其他一些信息并存入Excel中。
  • 原文地址:https://www.cnblogs.com/ccut-ry/p/9672749.html
Copyright © 2020-2023  润新知