[CTSC2007]动物园zoo
来源:互联网 发布:秦安观点 网络强国 编辑:程序博客网 时间:2024/04/29 12:13
Description
Input
输入的第一行包含两个整数
Output
仅输出一个数,表示最多可以让多少个小朋友高兴。
样例输入1
14 5 5
2 1 2 4 2 6
3 1 1 6 4
6 1 2 9 6 8
8 1 1 9 12
12 3 0 12 13 2
样例输入2
12 7 6
1 1 1 1 5
5 1 1 5 7
5 0 3 5 7 9
7 1 1 7 9
9 1 1 9 11
9 3 0 9 11 1
样例输出1
5
样例输出2
6
HINT
Source
思路
设
代码
#include <cstdio>#include <algorithm>#include <cstring>const int maxn=10000;int f[maxn+10][32],g[maxn+10][32];int n,m,ans;int main(){ scanf("%d%d",&n,&m); for(int i=1; i<=m; i++) { int w,l,h,lv=0,hv=0; scanf("%d%d%d",&w,&l,&h); for(int j=1; j<=l; j++) { int k; scanf("%d",&k); k=(k+n-w)%n; lv|=1<<k; } for(int j=1; j<=h; j++) { int k; scanf("%d",&k); k=(k+n-w)%n; hv|=1<<k; } for(int j=0; j<32; j++) { if((lv&j)||(hv&(31^j))) { g[w][j]++; } } } for(int s=0; s<16; s++) { memset(f[0],200,sizeof f[0]); f[0][s<<1]=0; for(int i=1; i<=n; i++) { for(int j=0; j<32; j++) { f[i][j]=std::max(f[i-1][(j&15)<<1],f[i-1][(j&15)<<1|1])+g[i][j]; } } ans=std::max(ans,std::max(f[n][s<<1],f[n][s<<1|1])); } printf("%d\n",ans); return 0;}
- bzoj1151: [CTSC2007]动物园zoo
- [CTSC2007]动物园zoo
- bzoj 1151: [CTSC2007]动物园zoo 状压dp
- HYSBZ 1151 动物园zoo - 状压dp
- APIO2007:风铃(Mobiles) 数据备份(Backup) 动物园(Zoo)
- Zoo
- ZOO
- 动物园
- 动物园
- 动物园
- 动物园
- 【ctsc2007】【挂缀】
- APIO07-zoo
- NOI ZOO
- 马尼拉动物园
- 【NOI2014】动物园
- [NOI2014]动物园
- NOI2014 动物园
- git clone后,如何从远程获取某一个远程服务器上的另外一个分支
- 上下文 Context
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 疯狂Java笔记之Java的内存与回收
- 视频直播linux环境搭建
- [CTSC2007]动物园zoo
- Windows上安装Tensorflow 以及集成Spark遇到的问题
- Python获取当前模块名
- 嵌入式linux面试题解析(四)——逻辑推理一
- typedef关键字
- oracle如何快速创建千万数量级数据
- 《DOS命令一日通》第三章 磁盘的准备与检查
- <i></i>为0*0时,显示背景
- ci框架&tp框架隐藏index.php