#515. 「LibreOJ β Round #2」贪心只能过样例 背包+bitset优化
来源:互联网 发布:黑客帝国4矩阵复活剧照 编辑:程序博客网 时间:2024/06/01 11:26
题意:
输入格式
输出格式
样例
数据范围与提示
思路:
正常情况下我们会想用背包来求解这个问题, f[ i ][j]=f[i-1][j-k*k] 但是要枚举没个j,
这里j的话最大到 100*100*i,又要枚举(a,b) 所以这样肯定会超时了.
有一个比较神奇的做法就是利用bitset来优化这个问题,bitset<1e6+10>b[101]
我们假设b 中的每一位从最低位0开始, 如果第i位为1 就意味着可以加出和为i的s.为0就
表示不可以... 那么当我们要要加上一个x的时候怎么办呢,只需要将b【k-1】中对应的为1的位置左移x*x位给b[k],表示
加完第k个数后可以合出这样的s.
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int maxn=1e6+10;int n;int l,r;bitset<maxn>b[111];int main(){scanf("%d",&n);b[0].set(0);for(int i=1;i<=n;i++){b[i].reset();scanf("%d %d",&l,&r);for(int j=l;j<=r;j++){b[i]|=(b[i-1]<<(j*j));}}printf("%d\n",b[n].count());return 0;}
阅读全文
0 0
- #515. 「LibreOJ β Round #2」贪心只能过样例 背包+bitset优化
- #515. 「LibreOJ β Round #2」贪心只能过样例 (简单dp+bitset优化)
- 【动态规划22】LiberOJ#515. 「LibreOJ β Round #2」贪心只能过样例(bitset优化)
- [bitset]#515. 「LibreOJ β Round #2」贪心只能过样例
- 「LibreOJ β Round #2」贪心只能过样例 [bitset]【STL】
- LibreOJ β Round #2 B.贪心只能过样例【Dp+bitset优化】
- #515. 「LibreOJ β Round #2」贪心只能过样例
- #515. 「LibreOJ β Round #2」贪心只能过样例
- LibreOJ 515 贪心只能过样例(dp[bitset优化])
- #520. 「LibreOJ β Round #3」绯色 IOI(开端) 贪心
- 「LibreOJ β Round #2」DP 一般看规律
- LibreOJ #505.「LibreOJ β Round」ZQC 的游戏 网络流
- LibreOJ #504. 「LibreOJ β Round」ZQC 的手办 线段树+堆
- [结论] LibreOJ #520. 「LibreOJ β Round #3」绯色 IOI(开端)
- [匹配+拓扑] LibreOJ #521. 「LibreOJ β Round #3」绯色 IOI(抵达)
- [数学杂题] LibreOJ #530「LibreOJ β Round #5」最小倍数
- [数学杂题] LibreOJ#532. 「LibreOJ β Round #5」随机数列
- loj#526. 「LibreOJ β Round #4」子集
- 快速排序
- ZOJ 3233(45/600)
- SQL基础语法
- POJ 3669 BFS+调试心得
- 大数据-医疗行业
- #515. 「LibreOJ β Round #2」贪心只能过样例 背包+bitset优化
- 20个正则表达式,让js校验不在难
- JS函数
- 继承LinkedHashMap实现自定义HashMap设定条件触发删除eldest元素
- ionic 二级页面隐藏自带的底部导航
- 如何运行vue项目
- DAY3 T3
- 20170713
- python 进程的使用、multiprocessing、Process