poj2441(状态压缩dp)
来源:互联网 发布:淘宝上的内衣有图评论 编辑:程序博客网 时间:2024/04/30 18:13
链接:点击打开链接
题意:有n头牛,每头牛有自己喜欢住的屋子,问使所有牛都住上自己喜欢的屋子有几种可能
代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;int d[25][25],dp[(1<<20)+5]; //因为开成二维会MLE,因此变成一维只记录状态int main(){ //状态压缩dp int n,m,i,j,k,x,ans,num; while(scanf("%d%d",&n,&m)!=EOF){ memset(d,0,sizeof(d)); memset(dp,0,sizeof(dp)); for(i=0;i<n;i++){ scanf("%d",&num); for(j=0;j<num;j++){ scanf("%d",&x); d[i][x-1]=1; } } dp[0]=1; //0代表没使用,1代表使用 for(i=0;i<n;i++){ for(j=0;j<=(1<<m)-1;j++){ if(__builtin_popcount(j)==i) //只有当前面状态所含1的个数为i使,才能继续往里添加 for(k=0;k<m;k++){ //否则其它状态是不存在的 if(!(j&(1<<k))&&d[i][k]==1) dp[j|(1<<k)]+=dp[j]; } } } ans=0; for(i=0;i<(1<<m);i++) if(__builtin_popcount(i)==n) //用的内置函数,判断二进制中1的个数 ans+=dp[i]; printf("%d\n",ans); } return 0;}
0 0
- 状态压缩DP+poj2441
- poj2441(状态压缩dp)
- POJ2441 Arrange the Bulls 状态压缩DP
- Arrange the Bulls(poj2441)状态压缩dp
- poj2441 poj1185 状态压缩DP
- poj2441 状态压缩~放置方案数
- poj2441 状压dp
- poj2441(状压dp)
- poj2441(状压dp)
- poj2441(状压dp)
- 状态压缩dp
- pku1038状态压缩dp
- 状态压缩DP 入门
- HDU1074 状态压缩DP
- Poj3254 状态压缩DP
- 状态压缩DP入门
- 【状态压缩DP】互不侵犯
- 【状态压缩DP】电子竞技
- 黑马程序员 NSRange的基础知识总结及应用
- UVALive 4960Sensor network(MST+LCA)
- [二分+线段树构图+网络流]CodeForces 589FGourmet and Banquet
- java中static作用详解
- 人力资源管理总结
- poj2441(状态压缩dp)
- eclipse maven plugin 插件 安装 和 配置
- Android的编译过程 & Android dex 方法限制的一些总结
- 【杭电】[1232]畅通工程
- SPOJ QTREE2Query on a tree II(LCA)
- 解决Ajax(jsonp)跨域访问问题
- 字体图标
- Android RxJava 的详解(转)
- jQuery获取checkbox选中的值