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

区间压缩dp(poj3254)

题目描述

农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑!

代码

#include<bits/stdc++.h>
using namespace std;
int N,M,state[600],field[100],top;
int dp[100][600];//dp[i][j]=采用编号为j的方案可以在i-1前得到的方案总数//检查该方案的状态有无相邻的1
bool check(int i){if(i<<1&i) return false;else return true; 
}//第k行的合法方案
void init(){int total=1<<N;//2^N个状态for(int i=0;i<total;i++){if (check(i)) state[++top]=i;//记录合法方案}
}//判断方案与实际状态是否符合(第k行)
bool che(int i,int k){if((i&field[k])==i) return true;return false;
}int main(){cin>>M>>N;init();for(int i=1;i<=M;i++){int x;for(int j=1;j<=N;j++){cin>>x;field[i]=x+(field[i]<<1);}}for(int i=1;i<=top;i++){if (che(i,1)) dp[1][i]=1;}for(int i=2;i<=M;i++){for(int j=1;j<=top;j++){if(!che(state[j],i)) continue;//不符合当前牧地for(int k=1;k<=top;k++){if(!che(state[k],i-1)) continue;else if(state[k]&state[j]) continue;else dp[i][j]+=dp[i-1][k]; //符合先前方案的}}}int ans=0;for(int i=1;i<=top;i++){ans+=dp[M][i];}cout<<ans<<endl;return 0;
}
http://www.gsyq.cn/news/23583.html

相关文章:

  • 完整教程:C++STL之list
  • 13 Static 关键字的作用
  • DS:一个处理php前端数据的实用类
  • rk3399 安卓7 添加 exfat 格式U 盘支持
  • 2025年10月ai优化推荐对比榜:十强服务商数据化拆解与选择策略
  • 深入解析:图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)
  • 21-java-grpc-demo-1
  • 【AI绘画】你有多久没有打开SD了?
  • 2025年10月geo优化供应商推荐榜:十强对比评测与中立选购指南
  • 标准差和方差
  • 2025年10月geo优化推荐榜单:十强服务商全维度对比与中立选购指南
  • 2025年10月geo公司推荐榜:基于全平台同步优化能力的中立对比与选购指南
  • 2025年10月geo服务商推荐榜:十强对比与中立评测助您精准选型
  • 常见数据结构长度的获取
  • 2025年10月GEO推荐榜单:十家技术服务商深度对比与中立评测
  • 2025年10月办公家具公司推荐榜单:基于真实案例的采购决策参考
  • 逆向 | 对python函数进行hook的最简单方式
  • 从直线到环形:解锁栈、队列背后的空间与效率平衡术 - 教程
  • 2025年10月deepseek关键词排名优化推荐榜单:基于多维度实测与公开数据的对比分析
  • 2025年10月油烟机推荐榜单:以海信为例的顶侧双吸技术深度剖析
  • 详细介绍:人工智能-机器学习day5
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名视觉标记系统需求探索
  • 2025年10月AI搜索营销推荐榜:十强服务商多维对比与中立评测
  • 2025年海信洗碗机深度解析:技术突破与全球市场领导地位揭秘
  • 超详细TCP协议讲解!!! - 实践
  • 深入解析:CTFHub 信息泄露通关笔记2:PHPINFO泄露
  • 2025年10月远程控制软件推荐榜:节点小宝十强对比与中立评价报告
  • 2025年10月geo优化公司推荐榜:十强对比评测与选购避坑指南
  • 第一次博客
  • Lambda架构:实时与批处理的完美融合