loj515 贪心只能过样例(bitset)】的更多相关文章

bitset练习题... 位运算真的是玄学... 一开始真的“只能过样例” 后来发现把左移写成了小于号 鬼知道我在想什么/手动微笑 loj第一题 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<vector> #include<que…
内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: nzhtl1477 提交提交记录统计讨论测试数据   题目描述 一共有 nnn个数,第 iii 个数 xix_ix​i​​ 可以取 [ai,bi][a_i , b_i][a​i​​,b​i​​] 中任意值.设 S=∑xi2S = \sum{{x_i}^2}S=∑x​i​​​2​​,求 SSS 种类数. 输入格式 第一行一个数 nnn.然后 nnn 行,每行两个数表示 ai,bia_i,b_i…
题目: https://loj.ac/problem/515 分析: 所有可能和的最大值是1e6 如果dp的话,dp[i][j]表示前i个数能否凑出和为j的数 这样是O(n^5)的 考虑到[j]可以用bitset优化,时间可以卡过去 bitset可以认为常数/64,并且bitset刚开始全部都是0,后来全部都是1,所以可以认为是1/2常数,所以总的时间复杂度O(n^5/128)…
由于bitset极其不熟练且在实际题目中想不起来运用它来优化,于是练了几道题. 这题是一个分组的bool背包,每组必须选一个,暴力的话是$O(n^5)$. 如果dp数组不要一维滚动的话,有两种枚举方法,一种是枚举体积放外层然后同一组物品放内层,另一种是反过来. ...n ...V ...a[i] f[i][j]|=f[i-][j-a[k]] or ...n ...a[i] ...V f[i][j]|=f[i-][j-a[k]] 然后注意第二种转移有一个可优化的地方.每次$f_{i-1,j}$都是…
bitset的基本应用了 类似可行性背包的dp考虑 复杂度O(nmL/64) #include <bits/stdc++.h> using namespace std; bitset <> bs,bs0; int n,a,b; int main(){ ios::sync_with_stdio(false); cin>>n; bs[]=; ;i<=n;i++){ bs0=bs; bs.reset(); cin>>a>>b; for(int j…
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. 设 \(S=\sum{x_i^2}​​\) ,求 \(S\) 种类数. 输入 第一行一个数 \(n\). 然后 \(n\) 行,每行两个数表示 \(a_i, b_i\). 输出 输出一行一个数表示答案. 输入示例 5 1 2 2 3 3 4 4 5 5 6 输出示例 26 数据规模及约定 \(1 \…
贪心只能过样例 SRM 10 描述 给出n个数a[i](1<=a[i]<=n),问最多能把这些数分成几组,使得每个数a[i]所在的组至少有a[i]个数 输入格式 第一行一个整数n,接下来n行每行一个整数分别是a[1],a[2],...,a[n] 输出格式 一行,输出答案,一个整数 样例输入 5 2 1 2 2 3 样例输出 2 数据范围与约定 数据有梯度,分布如下: 0<n<=20 7组数据 20<n<=5000 15组数据 5000<n<=1000000…
题目描述 一共有 nnn个数,第 iii 个数 xix_ix​i​​ 可以取 [ai,bi][a_i , b_i][a​i​​,b​i​​] 中任意值.设 S=∑xi2S = \sum{{x_i}^2}S=∑x​i​​​2​​,求 SSS 种类数. 输入格式 第一行一个数 nnn.然后 nnn 行,每行两个数表示 ai,bia_i,b_ia​i​​,b​i​​. 输出格式 输出一行一个数表示答案. 样例 样例输入 5 1 2 2 3 3 4 4 5 5 6 样例输出 26 数据范围与提示 1≤n…
传送门: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 <algori…
可以发现,答案最大值只有106,于是想到用暴力维护 可以用bitset合并方案可以优化复杂度, Code #include <cstdio> #include <bitset> using namespace std; int n,l[110],r[110],x; bitset<1000010>q[2]; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i)scanf("%d%d&…