[題解](狀壓/水)luogu_P1879玉米田
大水題然而因為智障的錯誤调了半天......
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玉米田的更多相关文章
- [題解/狀壓dp]POJ_2411_Mondriaan's dream
关于“我读过很多书,到后来大部分都被我忘记了,那阅读的意义是什么?”的疑问,我看过最巧妙的一个回答:当我还是个孩子的时候,我吃过很多的食物,大部分已经一去不复返而且被我忘记了,但可以肯定的是,它们中的 ...
- [題解](水/數學)luogu_P1147連續自然數和
尺取法a掉 然而數學解法為 等差數列求和公式: sum(L,R)=(L+R)(R-L+1)/2=M 即(L+R)(R-L+1)=2M 可以把2M分解成两个数之积,假设分成了两个数K1,K2,且K1&l ...
- [題解](最短路)luogu_P1119災後重建
一道好題,然而看題解做的...... floyed的實質:只經過前k個點i到j的最短路,原狀態轉移方程為 f [ k ] [ i ] [ j ]=min( f[ k-1 ] [ i ] [ j ],f ...
- [題解]luogu_P1854 花店櫥窗佈置
來源:題解 一開始看不懂題目,一萬年了終於看懂 f [ i ] [ j ] 表示第i朵花放在第j個花瓶中最大美學值,(花是必須用完嗎?) 顯然放i-1朵花至少要放到前i-1個瓶子里,最多放到前j-1個 ...
- bzoj4810 [Ynoi2017]由乃的玉米田
Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一 ...
- P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
P1879 [USACO06NOV]玉米田Corn Fields 状压dp水题 看到$n,m<=12$,肯定是状压鸭 先筛去所有不合法状态,蓝后用可行的状态跑一次dp就ok了 #include& ...
- 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 ...
- 状压DP【洛谷P1879】 [USACO06NOV]玉米田Corn Fields
P1879 [USACO06NOV]玉米田Corn Fields 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形 ...
- [題解]luogu_P3205/BZOJ_1996 合唱隊
前言:基本上發題解的都是抄的題解所以 來源:題解 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个 ...
随机推荐
- Chapter 3 Shared Assemblies and Strongly Named Assemblies
As time marches on,MS developers and control developer modify their code:they fix bugs,patch securit ...
- cassandra压缩——从文档看,本质上也应该是在做块压缩
Compression Compression maximizes the storage capacity of Cassandra nodes by reducing the volume of ...
- java运行Linux命令
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UT ...
- python之yield和Generator
首先我们从一个小程序导入,各定一个list,找出其中的素数,我们会这样写 import math def is_Prims(number): if number == 2: return True / ...
- Linux下监控网卡流量的软件iftop
官网上说使用iftop需要libpcap和libcurses这两个包. 用命令查找了一下 # rpm -qa | grep libpcap libpcap-0.9.4-15.el5 只找到了这个,缺 ...
- Java应用架构设计模块化模式与OSGI摘录
在Java中,最适合模块化的单元就是Jar文件. 代码层面我们关注的太多了,熟练的开发人员现在很少争论使用模式的好处,也不再识别哪个模式适合当前需要,因为都能够本能地使用各种设计原则和模式,从GoF的 ...
- 利用openssl进行base64的编码与解码
openssl可以直接使用命令对文件件进行base64的编码与解码,利用openssl提供的API同样可以做到这一点. 废话不多说,直接上代码了.需要注意的是通过base64编码后的字符每64个字节都 ...
- C/C++获取Windows系统CPU和内存及硬盘使用情况
//1.获取Windows系统内存使用率 //windows 内存 使用率 DWORD getWin_MemUsage(){ MEMORYSTATUS ms; ::GlobalMemoryStatus ...
- 使用Rest api管理Ceph网关
背景 开发基于Ceph RadosGW的微服务,需要实现调用方可以通过rest api就能创建用户,获取用户信息等功能. 实现 Ceph的RadosGW自身就有该功能,这些创建用户.获取用户信息.获取 ...
- Python复习 基础知识
动态语言:变量类型不固定称之为动态语言 什么是动态语言呢? 可以简单的理解为直接被解释执行的语言称为动态语言. 而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言. 当前静态语言有:jav ...