博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1879 [USACO06NOV]玉米田Corn Fields
阅读量:7075 次
发布时间:2019-06-28

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

这道题跟互不侵犯差不多,但是数据范围更大了

对于状态压缩dp,提前枚举出转移是一种很好的优化

然后对于转移也需要仔仔细细的分析,如同期望dp

#include
#include
#include
const int mod=1e8;int map[20];long long f[2][1<<12];int b[400],tot;int main(){ int n,m; scanf("%d%d",&n,&m); int a; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { scanf("%d",&a); a^=1; map[i]=(map[i]<<1)+a; } for(int i=0;i<(1<
>1))) b[++tot]=i; for(int i=1;i<=tot;i++) if(!(map[1]&b[i])) f[1][b[i]]=1; for(int i=2;i<=n;i++) for(int j=1;j<=tot;j++) { f[i&1][b[j]]=0; if(!(map[i]&b[j])) for(int k=1;k<=tot;k++) if(!(b[j]&b[k])&&!(map[i-1]&b[k])) f[i&1][b[j]]=(f[i&1][b[j]]+f[(i&1)^1][b[k]])%mod; } long long ans=0; for(int i=1;i<=tot;i++) ans=(ans+f[n&1][b[i]])%mod; printf("%lld",ans);}

转载于:https://www.cnblogs.com/Lance1ot/p/9379677.html

你可能感兴趣的文章
20135306黄韧[2.72 2.77 3.70](http://i.cnblogs.com/EditPosts.aspx?opt=1)
查看>>
配置Redis客户端
查看>>
easyui datagrid 相关取数据总结
查看>>
LeetCode:Reverse LinkedList
查看>>
xshell中复制快捷键的设置
查看>>
Problem A: 字符的变化
查看>>
Leveldb -转
查看>>
列表与元组的区别
查看>>
4月13
查看>>
Daily Scrum: 2012/11/12
查看>>
日志详解
查看>>
一起谈.NET技术,走向ASP.NET架构设计——第七章:阶段总结,实践篇(中篇)...
查看>>
第十二章 Java内存模型与线程
查看>>
jquery鼠标事件
查看>>
python写的百度图片爬虫
查看>>
【Android】试水安卓开发
查看>>
UnityGUI系统之InputField
查看>>
默认形参值
查看>>
Tomcat下载安装及常见问题解决办法
查看>>
Hummer框架平台介绍
查看>>