传送门

状压dp好题啊。

可以发现这道题的状压只用压缩5位。

f[i][j]表示当前在第i个位置状态为j的最优值。

显然可以由f[i-1]更新过来。

因此只用预处理在第i个位置状态为j时有多少个小朋友高兴就行了。

代码:

#include<bits/stdc++.h>
#define N 50005
using namespace std;
int n,c,f[N][35],cal[N][35],las,ans=0;
inline int read(){
    int ans=0;
    char ch=getchar();
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
    return ans;
}
inline int max(int a,int b){return a>b?a:b;}
int main(){
    n=read(),c=read();
    for(int i=1;i<=c;++i){
        int a=read(),b=read(),c=read(),tmp1=0,tmp2=0;
        for(int j=1;j<=b;++j)tmp1|=1<<((read()-a+n)%n);
        for(int j=1;j<=c;++j)tmp2|=1<<((read()-a+n)%n);
        for(int j=0;j<32;++j)if((j&tmp1)||(~j&tmp2))++cal[a][j];
    }
    las=15;
    for(int j=0;j<32;++j){
        memset(f[0],-0x3f,sizeof(f[0]));
        f[0][j]=0;
        for(int i=1;i<=n;++i)for(int k=0;k<32;++k)
                f[i][k]=max(f[i-1][(k&15)<<1],f[i-1][(k&15)<<1|1])+cal[i][k];
        ans=max(ans,f[n][j]);
    }
    cout<<ans;
    return 0;
}

2018.09.08 bzoj1151: [CTSC2007]动物园zoo(状压dp)的更多相关文章

  1. 2018.09.08 poj1185 炮兵阵地(状压dp)

    传送门 状压dp经典题. 我们把每一行的状态压成01串. 预处理出每一行可能出现的状态,然后转移每个被压缩的状态的1的个数就行了. 注意当前行转移要考虑前两行的状态. 还要注意只有一行的情况. 代码: ...

  2. 2018.09.08 NOIP模拟 division(状压dp)

    这么sb的题考场居然写挂了2233. 假设n=∏iaiki" role="presentation" style="position: relative;&qu ...

  3. [bzoj1151][CTSC2007]动物园zoo_状压dp

    动物园zoo 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=1151 题解: 我们发现每个点只会往右延伸$5$个,这个数非常小. 再加上每 ...

  4. 【[APIO/CTSC2007]动物园】状压DP

    题目测评:https://www.luogu.org/problemnew/show/P3622 题目描述 新建的圆形动物园是亚太地区的骄傲.圆形动物园坐落于太平洋的一个小岛上,包含一大圈围栏,每个围 ...

  5. 2018.09.22 牧场的安排(状压dp)

    描述 农民 John 购买了一处肥沃的矩形牧场,分成M*N(1 <= M <= 12; 1 <= N <= 12)个 格子.他想在那里的一些格子中种植美味的玉米.遗憾的是,有些 ...

  6. [BZOJ1151][CTSC2007]动物园zoo 解题报告|DP|位运算

    Description 最近一直在为了学习算法而做题,这道题是初一小神犇让我看的.感觉挺不错于是写了写. 这道题如果是一条线的话我们可以构造一个DP f[i,j]表示以i为起点,i,i+1...i+4 ...

  7. 2018.10.17 NOIP模拟 管道(状压dp)

    传送门 状压dp好题. 怎么今天道道题都有点东西啊 对于今天题目神仙出题人先膜为上策:%%%%DzYoAk_UoI%%%% 设f[i][j]f[i][j]f[i][j]表示选取点的状态集合为iii,当 ...

  8. noi省选 [九省联考2018]一双木棋题解(状压dp)

    比浙江简单多了........ 题目转送:https://www.luogu.org/problemnew/show/P4363 分析: 我们注意到n和m都很小,考虑一下状压dp. 显然,棋子摆成的形 ...

  9. 洛谷P4363 [九省联考2018]一双木棋chess 【状压dp】

    题目 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子当且仅当这个 ...

随机推荐

  1. 22.OGNL与ValueStack(VS)-默认类Math的访问

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在loginSuc.jsp中增加如下代码: 调用Math类中的静态方法:&l ...

  2. nginx直接返回json

    尝试配置nginx.conf之后,访问直接变成下载文件... 查阅之后,发现需要配置返回内容的格式. location ~ ^/get_json { default_type application/ ...

  3. Java 跨域 CrossOrigin注解 Filter拦截 Nginx配置

    说明 资源请求的发起方与请求的资源不在同一个域中的: 一般的,只要网站的[协议名protocol].[主机host].[端口号port]这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用: ...

  4. 前端-CSS-5-继承性&层叠性&权重比较

    1.继承性 <style type="text/css"> .father{ font-size: 30px; background-color: green; } . ...

  5. php 时间操作归类

    对于php时间表示有两种: 一.‘xxxx-xx-xx'这种容易分辨的格式 二.unix时间戳格式 他们的之间的转换关系是: 常规格式转时间戳 $T='2014-05-24'; $Tr=strtoti ...

  6. 组队打代码 !!! ——Alpha项目冲刺

    Alpha阶段 - 博客链接合集 队伍名称: 代码那些事儿 学号 姓名 211606320 刘佳 211606313 李佳 211606303 陈水莲 211606302 曾丽丽 211606338 ...

  7. cookie保存用户名及密码

    登陆页中,用户输入用户名密码,点击提交,后台对照mysq数据库中,看是否有对应的用户名,以及密码是否正确.如果正确 则将用户名密码分两份Cookie保存.页面跳转到登陆成功页. 用户再次访问登陆页时, ...

  8. mysql 新增数据

  9. k-means处理图片

    问题描述:把给定图片,用图片中最主要的三种颜色来表示该图片 k-means思想: 1.选择k个点作为初始中心 2.将每个点指派到最近的中心,形成k个簇cluster 3.重新计算每个簇的中心 4.如果 ...

  10. centos7 升级python2.7 到python3.6(Centos7 安装Anaconda)

    Anaconda 下载 https://www.anaconda.com/download/#linux 下载文件 Anaconda3-5.2.0-Linux-x86_64.sh bash Anaco ...