[題解](狀壓/水)luogu_P1879玉米田
2024-08-28 10:38:39
大水題然而因為智障的錯誤调了半天......
n,m别反着输入啊......內外循環和狀態數都不等價
别的就是記錄一下每一行不可行的點,也狀壓一下,dp的時候判一下即可
#include<bits/stdc++.h>
using namespace std;
const int mod=;
int n,m,tot;
int f[][<<+],c[<<+];
int can[];
int main()
{
scanf("%d%d",&m,&n);
for(int i=,a;i<=m;i++)
for(int j=;j<=n;j++){
scanf("%d",&a);
if(a==)can[i]=can[i]|(<<(n-j));
}
for(int i=;i<=(<<n)-;i++)
if(!(i&(i<<)) && !(i&(i>>)))c[++tot]=i;
int last,now;
for(int i=;i<=tot;i++){//處理第一行
if(c[i] & can[])continue;
f[][c[i]]=;
}
for(int i=;i<=m;i++)
for(int j=;j<=tot;j++){
last=c[j];if(last & can[i-])continue;
for(int k=;k<=tot;k++){
now=c[k];
if(now & can[i])continue;
if(now & last)continue;
f[i][now]+=f[i-][last];
f[i][now]%=mod;
}
}
int ans=;
for(int i=;i<=(<<n)-;i++){
ans+=f[m][i];ans%=mod;
}
printf("%d",(ans+mod)%mod);
// for(int i=1;i<=tot;i++)cout<<c[i]<<' ';
}
最新文章
- cocos2d-x宏定义
- 很久以前写的一个 ShareRestrictedSD 类
- Keytool生成csr
- text-overflow:ellipsis实现超出隐藏时省略号显示
- (C/C++ )Interview in English - Virtual
- 如何申请TexturePacker注册码
- wxpython ItemContainer
- CentOS 7 之安装Mono&;MonoDevelop
- Button动态样式取代xml
- [Luogu2057]善意的投票
- C语言第五次作业——循环结构
- MongoDB之常用操作
- android修改getprop读取到的ro.build.fingerprint属性
- h5 文件下载
- Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器
- Nginx.代理MySQL
- JS _proto_ 和 prototype
- Maven的scope的值
- 003-and design-在create-react-app项目中使用antd
- php扩展库
热门文章
- appium(13)- server config
- AmIBeingDebugged &#160;函数方法的定义实现
- charles刷分微信跳一跳小程序对https的理解
- 在 Linux 上如何清除内存的 Cache、Buffer 和交换空间
- hadoop学习之旅1
- linux应用之apache服务的安装及配置(centos)
- (转)使用cygwin注意事项一
- python+Django实现Nagios自动化添加监控项目
- AtCoder Grand Contest 007 E:Shik and Travel
- 在JS中将指定表单内的“具有name数据的表单元素的值”封装为Get形式的字符串