【状压dp】【bitset】bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理
vs(i)表示患i这种疾病的牛的集合。
f(S)表示S集合的病被多少头牛患了。
枚举不在S中的疾病i,把除了i和S之外的所有病的牛集合记作St。
f(S|i)=max{f(S)+((St|vs(i))^St)中牛的数量}
#include<cstdio>
#include<bitset>
#include<algorithm>
using namespace std;
bitset<1000>vs[15],t,t2;
int n,m,K,ans,f[1<<15];
int main()
{
// freopen("bzoj1688.in","r",stdin);
int x,y;
scanf("%d%d%d",&n,&m,&K);
for(int i=1;i<=n;++i)
{
scanf("%d",&x);
if(!x) ++f[0];
for(int j=1;j<=x;++j)
{
scanf("%d",&y);
vs[y-1][i-1]=1;
}
}
for(int i=0;i<(1<<m);++i)
for(int j=0;j<m;++j)
if(!((1<<j)&i))
{
t.reset();
for(int k=0;k<m;++k)
if((!((1<<k)&i))&&k!=j)
t|=vs[k];
f[i|(1<<j)]=max(f[i|(1<<j)],f[i]+(int)((t|vs[j])^t).count());
}
for(int i=0;i<(1<<m);++i)
{
int cnt=0;
for(int j=0;j<m;++j)
if((1<<j)&i)
++cnt;
if(cnt<=K)
ans=max(ans,f[i]);
}
printf("%d\n",ans);
return 0;
}
【状压dp】【bitset】bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理的更多相关文章
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
思路:状压dp,枚举疾病的集合,然后判断一下可行性即可. #include<bits/stdc++.h> using namespace std; #define maxs 400000 ...
- 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP
[BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
我一开始写了个状压dp..然后没有滚动就MLE了... 其实这道题直接暴力就行了... 2^15枚举每个状态, 然后检查每头牛是否能被选中, 这样是O( 2^15*1000 ), 也是和dp一样的时间 ...
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理
1688: [Usaco2005 Open]Disease Manangement 疾病管理 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 413 So ...
- BZOJ 1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压DP + 二进制 + 骚操作
#include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #defin ...
- [Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
分析: 这个题的状压DP还是比较裸的,考虑将疾病状压,得到DP方程:F[S]为疾病状态为S时的最多奶牛数量,F[S]=max{f[s]+1}; 记得预处理出每个状态下疾病数是多少... 附上代码: # ...
- 【BZOJ】1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1688 很水的状压.. 提交了很多次优化的,但是还是100msT_T #include <cst ...
- 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理 状态压缩dp+背包dp
题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...
- 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理
题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...
随机推荐
- [IIS]IIS扫盲(三)
IIS扫盲贴 --==[精品]==-- IIS扫盲贴 --==[精品]==-- 2000对应iis5.0 xp对应iis5.1 2003对应iis6.0 作者: II ...
- Codeforces 723e [图论][欧拉回路]
/* 不要低头,不要放弃,不要气馁,不要慌张. 题意: 给你一个有n个点,m条边的无向图,给每条边规定一个方向,使得这个图变成有向图,并且使得尽可能多的点入度与出度相同. 输出有多少个这样的点并且输出 ...
- 不同hadoop集群之间迁移hive数据
#!/bin/bash #set -x DB=$1 #获取hive表定义 ret=$(hive -e 'use ${DB};show tables;'|grep -v _es|grep -v _hb| ...
- 【转】Samba配置文件详解
一. 客户命令: 1. smbclient smbclient 命令用来存取远程 samba 服务器上的资源,它的界面到目前为止还是文本方式的,命令形式和 ftp 类似. smbclient 命令的语 ...
- loadrunner 功能详解(一) - Run-time Settings
1.General / Run Logic Number of Iterations:说明的是反复循环的次数. 常境的时间中,如果时间设为5分钟,而实际上程序的运行只需要1分钟,而在这项中,选择的是 ...
- sql 2008 R2添加对MySql的远程服务器链接
(1).我的sql 2008 R2所在的系统为Windows server 2008 *64 (2).MySQL所在的系统为Windows server 2003 *86 我想要实现的是在sql 20 ...
- android WebView问题
1.加载本地js.css文件 今天碰到个问题,使用WebView加载html数据,本来没什么问题,loadUrl(),loadData(),都可以使用 但是如果需要引入本地的js.css文件就碰到问题 ...
- VMware 中windows server 之DHCP 搭建与测试
感悟: 由于打算将windows server 的服务器搭建维护从头重新学习总结一下,遇到搭建dhcp服务的时候,在虚拟机中一直测试不成功,耽误我好几星期了,一点也不夸张,心情和积极性也大大受到打击. ...
- php六种基础算法:冒泡,选择,插入,快速,归并和希尔排序法
$arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. * 比 ...
- vbs获取命令行里的参数
var args1=WScript.Arguments.Item(0) var args2=WScript.Arguments.Item(1)