博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3154 Corn Fields
阅读量:4114 次
发布时间:2019-05-25

本文共 1438 字,大约阅读时间需要 4 分钟。

题意:有n行m列的矩阵,只能有0和1两种数字,现在准备在矩阵上放母牛(只能放在1上),问有多少种分配方案,
使得没有牛相邻。
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define MM(a) memset(a,0,sizeof(a)) typedef long long ll; typedef unsigned long long ULL; const double eps = 1e-10; const int inf = 0x3f3f3f3f; const int big=50000; const int mod=100000000; int max(int a,int b) {return a>b?a:b;}; int min(int a,int b) {return a
>1)||j&(j<<1)) continue;//枚举的j没有1相邻 for(int k=1;k<=m;k++) if(!fi[i][m-k+1]&&((j>>(k-1))&1)) { flag=0; break; }//枚举的j不与矩阵冲突 if(!flag) continue; //cout<<"2\n"; for(int k=0;k<=(1<
分析:dp[i][j]扫到第i层选取状态为j时的状态数,dp[i][j]+=dp[i-1][k](k为前一行符合要求的状态)
扫到第i行时,枚举当前状态,再枚举前一状态,要是符合要求的话就相加
wa代码:
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define MM(a) memset(a,0,sizeof(a)) typedef long long ll; typedef unsigned long long ULL; const double eps = 1e-10; const int inf = 0x3f3f3f3f; const int big=50000; const int mod=100000000; int max(int a,int b) { return a>b?a:b;}; int min(int a,int b) { return a
>1)||j&(j<<1)) continue; for(int k=1;k<=m;k++) if(!fi[i][k]&&((j>>(k-1))&1)) { flag=0; break; } if(!flag) continue; for(int k=0;k<=(1<

转载地址:http://ntgsi.baihongyu.com/

你可能感兴趣的文章
循环 Repeater
查看>>
Visual Studio 快捷键
查看>>
jenkins所遇问题(1)
查看>>
[SQL]手动查看数据锁与解锁
查看>>
[项目实战][一万小时的大师]创意来源
查看>>
oracle与DB2
查看>>
JDK1.5/1.6/1.7新特性
查看>>
CSS3 过渡
查看>>
自定义popupwindow组件
查看>>
在springmvc中解决FastJson循环引用的问题
查看>>
Redis 数据库
查看>>
为合适的产品:“知识付费”
查看>>
https 自签名SSL证书
查看>>
第一次---开园
查看>>
.net用NPOI生成Word表格
查看>>
Java面试连环炮问题收集记录贴【JVM方面】
查看>>
CodeForces 909C
查看>>
重温CSS之基础
查看>>
Java中怎么设置文件权限
查看>>
Java核心技术代理
查看>>