zoukankan      html  css  js  c++  java
  • loj515 「LibreOJ β Round #2」贪心只能过样例

    传送门:https://loj.ac/problem/515

    【题解】

    容易发现S最大到1000000。

    于是我们有一个$O(n^2*S)$的dp做法。

    容易发现可以被bitset优化。

    于是复杂度就是$O(frac{n^2S}{32})$

    然后……就过了

    # include <bitset>
    # include <stdio.h>
    # include <string.h>
    # include <iostream>
    # include <algorithm>
    // # include <bits/stdc++.h>
    
    using namespace std;
    
    typedef long long ll;
    typedef long double ld;
    typedef unsigned long long ull;
    const int M = 1e6 + 10, N = 100 + 5;
    const int mod = 1e9+7;
    
    int n, a[N], b[N], cnt;
    
    bitset<1000001> f[2];
    
    int main() {
        cin >> n;
        for (int i=1; i<=n; ++i) cin >> a[i] >> b[i];
        int pre = 0, cur = 1;
        f[0][0] = 1;
        for (int i=1; i<=n; ++i) {
            f[cur].reset();
            for (int j=a[i]; j<=b[i]; ++j) 
                f[cur] |= (f[pre] << j*j);
            swap(cur, pre);
        }
        for (int i=0; i<=1000000; ++i)
            if(f[pre][i]) ++cnt;
        cout << cnt << endl;
        return 0;
    }
    View Code
  • 相关阅读:
    ios资源
    学习swift开源项目
    学习di'z地址
    IOS基础库
    IT自学论坛
    HVTableView 分享组
    IOS中的动画菜单
    iOS 通讯录操作
    ios中autolayout
    ios 程序学习
  • 原文地址:https://www.cnblogs.com/galaxies/p/loj515.html
Copyright © 2011-2022 走看看