poj 3254
来源:互联网 发布:剑三高冷成男捏脸数据 编辑:程序博客网 时间:2024/06/05 10:23
poj 3254
Corn Fields
#include <stdio.h>#include <cstring>#include <iostream>using namespace std;#define mod 100000000int n,m,top=0;int status[1000];int dp[20][1000];int cur[20];void init(int s){top=0;for (int i = 0; i < 1<<m; ++i){if(i&i<<1 || i&cur[s]) continue;status[top++]=i;}}int main(int argc, char const *argv[]){// freopen("input","r",stdin);while(scanf("%d%d",&n,&m)!=EOF){top=0;memset(cur,false,sizeof(cur));memset(dp,false,sizeof(dp));for(int i=0;i<n;i++){for(int j=0;j<m;j++){int a;scanf("%d",&a);if(a==0)cur[i]+=1<<(m-j-1);}// cout<<cur[i]<<" ";}init(0);int st[1000];int t=top;memcpy(st,status,sizeof(status));for(int i=0;i<t;i++)dp[0][i]=1;for(int i=1;i<n;i++){init(i);for(int j=0;j<top;j++){for(int v=0;v<t;v++){// cout<<status[j]<<" ";// cout<<st[v]<<endl;if(status[j]&st[v]) continue;dp[i][j]+=dp[i-1][v];}// cout<<i<<" "<<j<<" "<<dp[i][j]<<endl;}t=top;memcpy(st,status,sizeof(status));}int sum=0;for(int i=0;i<top;i++)sum+=dp[n-1][i];printf("%d\n",sum%100000000);}return 0;}
0 0
- POJ 3254
- poj 3254
- POJ 3254
- poj 3254
- poj 3254
- poj 3254
- poj 3254
- poj 3254
- poj-3254
- poj 3254
- poj 3254
- poj 3254
- poj 3254
- POJ 3254
- poj 3254
- poj 3254
- POJ 3254
- [状态压缩DP] Poj 3254, Poj 1185
- 找新朋友(杭电1286)
- 直方图匹配方法
- LeetCode 2 Evaluate Reverse Polish Notation
- 腾讯后台开发三面面试题
- Android的LogCat的使用
- poj 3254
- JTable添加一行
- Search in Rotated Sorted Array
- Tui-x 自适应屏幕
- hdu 3342 拓扑排序
- 使用WPF内置的路由事件
- css2的特性—:after 和:before
- TopK问题探索-最小堆JAVA实现
- malloc/free和new/delete的区别(精)