【每日一题】简单瞎搞题

简单瞎搞题

https://ac.nowcoder.com/acm/problem/17193

炸了啊,刚写完又没了!!
$$

一共个区间,每个区间任取一个数,设,求S的种类。
思路:分组背包问题,&dp[i][j]&表示前i个区间里选i个数是否能表示j,我们要求最后能表示的数的种类数,其实就是


思路:


1.既然只有两种关系,我们这里就可以用bitset容器来保存每一个状态,通过向左移来求和更新状态,通过异或来添加状态。
2.那么转移状态:
3.然后还有一些内置函数:比如reset(4),reset函数传一个参数时将参数下标处置为0。


Code:


#include<bits/stdc++.h>
#define  js  ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std;
const int maxn=1e6+10;
bitset<maxn> dp[102];
int n,l,r;
int main() {
    js;
    cin>>n;
    dp[0].set(0);//下标为0的地方赋值为1
    for(int i=1;i<=n;i++) {
        cin>>l>>r;
        for(int j=l;j<=r;j++ ) dp[i] |= (dp[i-1]<<(j*j));
    }
    cout<<dp[n].count()<<endl;
}
每日一题 文章被收录于专栏

牛客每日一题

全部评论
看dalao你的题解长大的
点赞 回复 分享
发布于 2021-08-14 00:28

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务