大水題然而因為智障的錯誤调了半天......
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]<<' ';
}

[題解](狀壓/水)luogu_P1879玉米田的更多相关文章

  1. [題解/狀壓dp]POJ_2411_Mondriaan's dream

    关于“我读过很多书,到后来大部分都被我忘记了,那阅读的意义是什么?”的疑问,我看过最巧妙的一个回答:当我还是个孩子的时候,我吃过很多的食物,大部分已经一去不复返而且被我忘记了,但可以肯定的是,它们中的 ...

  2. [題解](水/數學)luogu_P1147連續自然數和

    尺取法a掉 然而數學解法為 等差數列求和公式: sum(L,R)=(L+R)(R-L+1)/2=M 即(L+R)(R-L+1)=2M 可以把2M分解成两个数之积,假设分成了两个数K1,K2,且K1&l ...

  3. [題解](最短路)luogu_P1119災後重建

    一道好題,然而看題解做的...... floyed的實質:只經過前k個點i到j的最短路,原狀態轉移方程為 f [ k ] [ i ] [ j ]=min( f[ k-1 ] [ i ] [ j ],f ...

  4. [題解]luogu_P1854 花店櫥窗佈置

    來源:題解 一開始看不懂題目,一萬年了終於看懂 f [ i ] [ j ] 表示第i朵花放在第j個花瓶中最大美學值,(花是必須用完嗎?) 顯然放i-1朵花至少要放到前i-1個瓶子里,最多放到前j-1個 ...

  5. bzoj4810 [Ynoi2017]由乃的玉米田

    Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题   这个题是这样的: 给你一 ...

  6. P1879 [USACO06NOV]玉米田Corn Fields(状压dp)

    P1879 [USACO06NOV]玉米田Corn Fields 状压dp水题 看到$n,m<=12$,肯定是状压鸭 先筛去所有不合法状态,蓝后用可行的状态跑一次dp就ok了 #include& ...

  7. P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...

  8. 状压DP【洛谷P1879】 [USACO06NOV]玉米田Corn Fields

    P1879 [USACO06NOV]玉米田Corn Fields 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形 ...

  9. [題解]luogu_P3205/BZOJ_1996 合唱隊

    前言:基本上發題解的都是抄的題解所以 來源:題解 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个 ...

随机推荐

  1. php命名空间使用总结

    从php5.3开始可以使用命名空间,命名空间是为了防止命名 空间的元素重复而使用的.命名空间的元素包括:class.function.const(从php5.3开始在类外部也可以用const定义常量, ...

  2. indexDB操作(部分方法不太会使用)

    <script type="text/javascript"> //打开数据库 function openDB(name,version){ var version = ...

  3. android RefBase、sp、wp

    首先RefBase在android的c++部分是作为一个所有类的基类,其作用跟Java中的Object类似 这个类中存在一个私有成员: weakref_impl* const mRefs;(weakr ...

  4. POJ 2485 Highways(最小生成树+ 输出该最小生成树里的最长的边权)

                                                                                                         ...

  5. 通过dom4j写.xml文件

    步骤: 1.左键选中src,点击红圈2: 2.新建类: 3.开始写代码: package com.bjsxt.xml; import java.io.File; import java.io.File ...

  6. 自建 AppRTC

    自建 AppRTC 字数3158 阅读1718 评论2 喜欢2 AppRTC 是 webrtc 的一个 demo.自建 AppRTC 可以苦其心志劳其筋骨饿其体肤,更重要的是能学会 webrtc 服务 ...

  7. 卸载asterisk 会装就要会卸载 你会吗? [跟我一起学](转安静的发狂者)

      1 针对用编译的方式安装时的卸载 第一步 :先停止你的asterisk >asterisk -rx ‘stop now’然后要验证一下是否真的被停了. >ps aux|grep “as ...

  8. BZOJ2006:超级钢琴(ST表+堆求前K大区间和)

    Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度 ...

  9. Update 出现在的问题

    报错提示:之前的操作没有完成,运行deanup被打断,请先执行Cleanup方法. 正常右键点击Cleanup,如果只让默认值勾选,可能还是会报这个错.所以正确操作如下: 全部选中再点击OK,这样就可 ...

  10. ubuntu 常见问题解决

    1.更新出现Could not get lock /var/lib/apt/lists/lock问题解决方法: 首先输入命令:sudo rm /var/lib/apt/lists/* -vf 执行完成 ...