公牛与状压dp
T1 疾病管理
裸得不能再裸的状压dp 不过数据范围骗人
考试时k==0的点没过 我也很无奈呀qwq
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
],f[<<];
int pd(int x){
;
while (x){
) tot++;
x>>=;
}
return tot;
}
int main(){
freopen ("disease.in","r",stdin);
freopen ("disease.out","w",stdout);
;
scanf ("%d%d%d",&n,&d,&k);
;i<=n;++i){
int x,y;
scanf ("%d",&x);
) sum++;
;j<=x;++j){
scanf ("%d",&y);
g[i]|=(<<y-);
}
}
;i<(<<d);++i)
{
if (pd(i)<=k)
;j<=n;++j){
if (g[j]&(~(g[j]&i))) continue;
//如果这个公牛的疾病未完全被包含在此状态中 就跳过
f[i]++;
}
}
;
;i<(<<d);++i) ans=max(ans,f[i]);
) ans=max(ans,sum);
cout<<ans;
;
}
T2 安排公牛
考场上玄学dfs胡乱搞到70
然而大家似乎都是随手就80了(无奈脸x2
看到<=20的友好范围想着要状压 然而 越想越复杂了(老毛病
正解依旧dp
要注意0也是一种状态 对 什么都不放也是一种状态qwq
大概就是类似于“无即万物“的思想
感谢超级厉害的csy大佬不嫌我蠢跟我讲了几遍
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<string>
#define ll long long
using namespace std;
][];
<<];
;
int main(){
freopen ("examnine.in","r",stdin);
freopen ("examnine.out","w",stdout);
scanf ("%d%d",&n,&m);
;
;i<=n;++i){
int xx,y;
scanf ("%d",&xx);
;j<=xx;++j){
scanf ("%d",&y);
x[i][y]=;
}
}
dp[]=;
;i<=n;++i)
<<m)-;j>=;--j){
if (!dp[j]) continue;
;k<=m;++k){
if (!x[i][k]) continue;
<<k-)) continue;
dp[j|(<<k-)]+=dp[j];
}
dp[j]=;
}
;i<=(<<m)-;++i) ans+=dp[i];
cout<<ans;
;
}
总结:
以后碰到感觉不怎么好打的dp
一定要认真分析时间复杂度
敢于dfs(逃
公牛与状压dp的更多相关文章
- BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3336 Solved: 1936[Submit][ ...
- nefu1109 游戏争霸赛(状压dp)
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...
- poj3311 TSP经典状压dp(Traveling Saleman Problem)
题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- HDU 1074 Doing Homework (状压dp)
题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...
- 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP
[BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...
- 【BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP
[BZOJ1725][Usaco2006 Nov]Corn Fields牧场的安排 Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M< ...
随机推荐
- websocket(三) 进阶!netty框架实现websocket达到高并发
引言: 在前面两篇文章中,我们对原生websocket进行了了解,且用demo来简单的讲解了其用法.但是在实际项目中,那样的用法是不可取的,理由是tomcat对高并发的支持不怎么好,特别是tomcat ...
- Flex布局学习笔记
任何元素都可以使用Flex布局,包括行内元素 display: flex; display: inline-flex使用Flex布局之后,子元素的float, clear, vertical-alig ...
- iscroll遇到的两个坑
最近移动端闪付遇到的两个坑做下总结: 1.使用iscroll后,滑动并没有生效 解决方案: 首先要查看:结构是否正确: <div id="wrapper"> //w ...
- 模块化编程node
众所周知,Node.js 的出现造就了全栈工程师,因为它让 JavaScript 的舞台从浏览器扩大到了服务端 而 Node.js 的强大也得益于它庞大的模块库,所以学习 Node.js 第一步还得从 ...
- Linux常用命令及部分详解
1.总结部分 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) m ...
- 实践作业2:黑盒测试实践——小组任务分工 Day 1
今日教学实验任务分配后,课下小组例会完成任务分工,具体分工如下: (1)系统需求分析--刘思佳 (2)设计测试用例--王俊杰 (3)编写.运行测试脚本--郜昌磊 (4)记录测试过程--吴慧杰 (5)记 ...
- WPF自定义产品框架
在讲解之前先看一下效果,有助于理解: 这是客户端的效果图.整个产品分为两部分:1.WPF开发的展示效果的客户端 2.WCF开发的提供数据服务接口的服务端 本章主要讲解一下实际中开发WPF开发客 ...
- PHP扩展安装方法
php扩展安装方法极简单. 也遵循3大步.但多出一个phpize的步骤. 1.pecl.php.net 在右上解的输入框 中输入需要的扩展 比如 redis 2.搜索完成后会看到两个蓝色的框 ...
- java使用普通算法实现99乘法表,使用递归实现99乘法表
public class recursionTest { public static void main(String[] args) { //jiujiu(); m(9); } /* * for循环 ...
- JS 获取上传文件的内容
<div> 上传文件 : <input type="file" name = "file" id = "fileId" / ...