poj 3254 Corn Fields (状态压缩DP)
题目:http://poj.org/problem?id=3254
思路见代码:
#include<iostream>
using namespace std;const int MOD=100000000;
const int MAX_N_M=12;
int row_state[MAX_N_M];
// 枚举出合法的状态数
int LegalState[2000],nstate;
int dp[MAX_N_M][2000],n,m;
/*dp[i][j]:= 第i行,状态为j时的方案数
*/void init() //枚举合法状态
{int allstate=0x1<<12;nstate=0;for(int i=0;i<allstate;i++){if((i&(i<<1))==0){LegalState[nstate++]=i;}}
}int main()
{while(cin>>m>>n){init();for(int i=0;i<m;i++){row_state[i]=0;for(int j=n-1;j>=0;j--){int s;cin>>s;row_state[i] += s<<j; //每行的状态 }}// 处理第1行的情况// 合法状态与每一行的状态按位与 for(int i=0;i<nstate;i++){dp[0][i]=((row_state[0]&LegalState[i]) == LegalState[i])?1:0;}for(int i=1; i<m; i++){for(int j=0; j<nstate; j++){if((row_state[i]&LegalState[j]) == LegalState[j]){for(int k=0; k<nstate; k++){if(dp[i-1][k] && (LegalState[k]&LegalState[j])==0){dp[i][j] += dp[i-1][k];dp[i][j] %=MOD;}}}}}int res=0;for(int i=0;i<nstate;i++){res += dp[m-1][i];res %= MOD;}cout<<res<<endl;}
}
poj 3254 Corn Fields (状态压缩DP)相关推荐
- poj 3254 Corn Fields 状态压缩dp
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Description Farmer John has purchased a ...
- poj - 3254 Corn Fields (状态压缩dp入门)
http://poj.org/problem?id=3254 参考:http://blog.csdn.net/accry/article/details/6607703 农夫想在m*n的土地上种玉米, ...
- POJ 3254 Corn Fields (状态压缩)
刚开始的思路是 把0-2^x的 所有状态枚举, 然后找符合条件的, 但是 发现 当12*12 时 1的数量x 超过64 这是个庞大的数字, 跟本就没法枚举: 想到用状态压缩, 但是 怎么压 ...
- Poj - 3254 Corn Fields (状压DP)(入门)
题目链接:https://vjudge.net/contest/224636#problem/G 转载于:https://blog.csdn.net/harrypoirot/article/detai ...
- POJ - 3254 Corn Fields(状压dp)
题目链接:点击查看 题目大意:给出一个n*m的地图,有些位置不能放牧,然后放牧的条件是相邻两个格子不允许同时使用,问可行方案有几种 题目分析:因为给出的数据范围很小,并且放牧的状态是放或者不放,很容易 ...
- 状态压缩dp入门 第一题 POJ 3254 Corn Fields
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6460 Accepted: 3436 Descr ...
- POJ 3254 Corn Fields [DP]
题意:略. 思路:第一次做状态压缩的dp. 在这里说一下状态压缩的原则.因为每一行只有最多12个格子,每个格子只有1(可放牛)和0(不可放牛)两种状态,这总共是2^12种状态,直接用一个int整型变量 ...
- POJ - 3254 - Corn Fields
线上题目: Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6936 Accepted: 3697 ...
- POJ 1185 炮兵阵地(状态压缩DP)
Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用&quo ...
最新文章
- iOS9的新特性以及适配方案
- java多态替换switch_使多态性无法解决那些switch / case语句的麻烦
- 悲观锁和乐观锁的详细分析
- 暮色森林模组_我的世界暮色森林mod全攻略,尤其是Boss击杀顺序,一定要牢记...
- 杭州 3~5年 前端面经,高频面试题总结
- 怎么修改_论文查重之后怎么修改?
- 接口的抽象与实现(概述)
- python numpy array中维度的区别 array.shape
- J2ME的移动支付系统的客户端的实现
- r语言kendall协和系数_多变量Kendall协和系数检验.ppt
- redis windows切割日志文件_开发者笔记:Windows下搭建简易单机Redis集群测试环境...
- 微信开发者工具下载地址
- CCS软件的Graph功能
- 在Debian上安装FlashPlayer10
- 行为树 --- [3] BehaviorTree.CPP在Windows下的使用(基于VSCode)
- android keep倒计时,Android仿Keep运动休息倒计时圆形控件
- dp和px,那些不得不吐槽的故事——Android平台图
- Falsy Bouncer
- @Resource注解用法
- LVS 的 Tunneling 模式
热门文章
- Elasticsearch的javaAPI之query dsl-queries
- 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途...
- SXS完全查杀+预防方案2
- date string 转化为weekday
- python selenium xpath_python+selenium十四:xpath和contains模糊匹配
- 西门子s7-400闭环控制模块_西门子6ES7312-1AE14-0AB0
- aac文件损坏修复软件_Mac不能安装非信任应用的解决方法 MAC软件安装必读 打不开身份不明的开发者?文件已损坏?...
- vsftp匿名访问目录_vsftp 使用匿名帐号登陆
- java中unknown source_java中GUI编程中的unknown source问题
- 这三个Python小技巧你要知道