当前位置: 首页 > news >正文

poj 3254 Corn Fields 国家压缩dp

意甲冠军:

要在m行n陆行,有一些格您可以种树,别人做不到的。不相邻的树,我问了一些不同的共同拥有的法律。

分析:

从后往前种,子问题向父问题扩展,当种到某一格时仅仅有他和他后面的n-1个格子的情况对它有影响。故对这n个格子进行编码为状态S,表示种完(多米诺骨牌那题是放置前。注意差别,都可行)这n个格子的状态。父问题由稍小子问题逐步解决,正是动态规划的思想。

代码:

//poj 3254
//sep9
#include <iostream>
using namespace std;
const int maxN=14;
const int mod=100000000;
int land[maxN][maxN];
int dp[2][1<<maxN];
int m,n;

int main()
{
	scanf("%d%d",&m,&n);
	int i,j,used;
	for(i=0;i<m;++i)
		for(j=0;j<n;++j)
			scanf("%d",&land[i][j]);	
	int *cur=dp[0],*nxt=dp[1];
	cur[0]=1;
	for(i=m-1;i>=0;--i)
		for(j=n-1;j>=0;--j){
			for(used=0;used<1<<n;++used){
				if(land[i][j]==0){
					if(used>>j&1)
						nxt[used]=0;
					else{
						nxt[used]=cur[used];
						nxt[used]+=cur[used|(1<<j)];
						nxt[used]%=mod;
					}
				}
				else{
					int res=0;
					if((used>>j&1)&&(used>>(j+1)&1)){
						res=0;
					}else if(!(used>>j&1)&&(used>>(j+1)&1)){
						res=cur[used];
						res+=cur[used|(1<<j)];						
					}else if((used>>j&1)&&!(used>>(j+1)&1)){
						res=cur[used&(~(1<<j))];
					}else if(!(used>>j&1)&&!(used>>(j+1)&1)){
						res=cur[used];
						res+=cur[used|(1<<j)];			
					}
					nxt[used]=res%mod;
				}	
			} 
			swap(cur,nxt);
		}
	int sum=0;
	for(int i=0;i<1<<n;++i){
		sum+=cur[i];
		sum%=mod;
	}
	printf("%d",sum);
	return 0;	
} 


相关文章:

  • [实战]MVC5+EF6+MySql企业网盘实战(5)——登录界面,头像等比例压缩
  • [转]Java输入输出流的使用详细介绍
  • 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形...
  • iOS app无launch screen.xib 对各个版本进行适配
  • iOS tintColor解析
  • 19/10/2015 晴 十点
  • GitHub Config文件中[user] [remote origin]的配置
  • Java Web 登录采用非对称加密(RSA算法)
  • DAG 的最短路径算法
  • 推荐一个c++小巧开源且跨平台的图像解码库
  • WDS+MDT部署Windows7操作系统2—;导入启动映像和安装映像
  • 机器学习之一:初认识
  • 10月Web服务器份额:排名不变 仅Apache份额下降
  • AndroidVideoPlayer在线播放视频
  • 谈 DevOps 自动化时,也应该考虑到 SOX 等法案
  • $translatePartialLoader加载失败及解决方式
  • [译]CSS 居中(Center)方法大合集
  • 《深入 React 技术栈》
  • Angular 4.x 动态创建组件
  • C++11: atomic 头文件
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Flannel解读
  • Hibernate【inverse和cascade属性】知识要点
  • Hibernate最全面试题
  • java小心机(3)| 浅析finalize()
  • Laravel 中的一个后期静态绑定
  • oldjun 检测网站的经验
  • PHP变量
  • vue数据传递--我有特殊的实现技巧
  • Yii源码解读-服务定位器(Service Locator)
  • 关于Flux,Vuex,Redux的思考
  • 回流、重绘及其优化
  • 基于HAProxy的高性能缓存服务器nuster
  • 面试总结JavaScript篇
  • 批量截取pdf文件
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 新版博客前端前瞻
  • 优化 Vue 项目编译文件大小
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 数据库巡检项
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​马来语翻译中文去哪比较好?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • # 数论-逆元
  • ###C语言程序设计-----C语言学习(3)#
  • #、%和$符号在OGNL表达式中经常出现
  • #1014 : Trie树
  • (2)STM32单片机上位机
  • (3)nginx 配置(nginx.conf)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (JS基础)String 类型
  • (rabbitmq的高级特性)消息可靠性
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ZT)出版业改革:该死的死,该生的生