POJ 2441 Arrange the Bulls(状压DP)
2024-08-24 12:39:13
【题目链接】 http://poj.org/problem?id=2441
【题目大意】
每个人有过个喜欢的篮球场地,但是一个场地只能给一个人,
问所有人都有自己喜欢的场地的方案数。
【题解】
状态S表示已经用了那些场地,顺序递推每个人满足需求的情况即可。
【代码】
#include <cstdio>
#include <cstring>
using namespace std;
const int N=25;
int n,m,u,x,dp[2][1<<20],a[N][N];
int main(){
while(~scanf("%d%d",&n,&m)){
memset(a,0,sizeof(a));
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(int i=1;i<=n;i++){
scanf("%d",&u);
while(u--)scanf("%d",&x),a[i][x]=1;
}
for(int i=1;i<=n;i++){
for(int j=0;j<(1<<m);j++)if(dp[1-i&1][j]){
for(int k=1;k<=m;k++){
if(a[i][k]&&j!=(j|1<<(k-1)))dp[i&1][j|1<<(k-1)]+=dp[1-i&1][j];
}
}memset(dp[1-i&1],0,sizeof(dp[1-i&1]));
}int ans=0;
for(int i=1;i<(1<<m);i++)ans+=dp[n&1][i];
printf("%d\n",ans);
}return 0;
}
最新文章
- 0103MySQL中的B-tree索引 USINGWHERE和USING INDEX同时出现
- GO语言面向对象
- 使用 CSS &; jQuery 制作一款漂亮的多彩时钟
- traceroute
- CUDA入门1
- ArcGIS API for Silverlight 之ElementLayer使用及TextSymbol的模板使用
- HttpWebRequest 上传图片
- 从打车软件你能想到多少?盈利模式?商机?大数据?移动互联网蛋糕?生活方式改变withApp?
- 劫持Disucz系列密码
- [Openfire]使用WebSocket建立Openfire的客户端
- 一个10年Java程序员的年终总结,献给还在迷茫中的你
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
- 《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令
- day 2 - 逻辑运算
- linux 用户空间获得纳秒级时间ns【转】
- nodejs -- fs模块 --->; readFile 函数 1) fs.readFile(filename, ";binary";, function(error, file) 2) response.write(file, ";binary";);
- 黄聪:FFmpeg 使用指南
- C++11 constexpr使用
- strace用法说明
- webView内部跳转后 返回不行了