[USACO 06NOV]Corn Fields
Description
给你一个 \(0,1\) 矩阵,只准你在 \(1\) 上放物品;并且要满足物品不能相邻。允许空放,问方案数,取模。
\(1\leq n,m\leq 12\)
Solution
状压 \(DP\) 。
记 \(f_{i,t}\) 为处理到第 \(i\) 行时放物品的状态为 \(t\) 的方案数。
若第 \(i\) 行的 \(1\) 的状态为 \(a\) 。显然由于必须放在 \(1\) 上,所以 \(a~and~t = a\) ,其中 \(and\) 为按位与;并且由于同行之间不能相邻,故 \((t>>1)~and~t=0\) 。
枚举的上一行状态为 \(k\) 。显然 \(t~and~k=0\) 。
复杂度为 \(O(n\cdot (2^n)^2)\)
Code
//It is made by Awson on 2018.2.25
#include <bits/stdc++.h>
#define LL long long
#define dob complex<double>
#define Abs(a) ((a) < 0 ? (-(a)) : (a))
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Swap(a, b) ((a) ^= (b), (b) ^= (a), (a) ^= (b))
#define writeln(x) (write(x), putchar('\n'))
#define lowbit(x) ((x)&(-(x)))
using namespace std;
const int yzh = 100000000;
const int size = 1<<12;
void read(int &x) {
char ch; bool flag = 0;
for (ch = getchar(); !isdigit(ch) && ((flag |= (ch == '-')) || 1); ch = getchar());
for (x = 0; isdigit(ch); x = (x<<1)+(x<<3)+ch-48, ch = getchar());
x *= 1-2*flag;
}
void print(LL x) {if (x > 9) print(x/10); putchar(x%10+48); }
void write(LL x) {if (x < 0) putchar('-'); print(Abs(x)); }
int n, m, a[15], x, f[15][size+5], bin[15];
void work() {
read(n), read(m); bin[0] = 1; for (int i = 1; i <= 12; i++) bin[i] = bin[i-1]<<1;
for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) read(x), a[i] = ((a[i]<<1)|x);
f[0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < bin[m]; j++)
if ((j == 0 || ((j|a[i]) == a[i])) && (j&(j>>1)) == 0)
for (int k = 0; k < bin[m]; k++)
if ((k == 0 || ((k|a[i-1]) == a[i-1])) && (k&(k>>1)) == 0)
if ((j&k) == 0) f[i][j] = (f[i][j]+f[i-1][k])%yzh;
}
int ans = 0;
for (int i = 0; i < bin[m]; i++) ans = (ans+f[n][i])%yzh;
writeln(ans);
}
int main() {
work(); return 0;
}
[USACO 06NOV]Corn Fields的更多相关文章
- USACO 2006 November Gold Corn Fields
USACO 2006 November Gold Corn Fields 题目描述: Farmer John has purchased a lush new rectangular pasture ...
- USACO Corn Fields
洛谷 P1879 [USACO06NOV]玉米田Corn Fields 洛谷传送门 题目描述 Farmer John has purchased a lush new rectangular past ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- poj 3254 Corn Fields
http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
- Corn Fields——POJ3254状态压缩Dp
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Description Farmer John has purchased a lush new ...
- poj3254 Corn Fields (状压DP)
http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
- [ACM] POJ 3254 Corn Fields(状态压缩)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8062 Accepted: 4295 Descr ...
- POJ P3254 Corn fields 【状压dp】
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16909 Accepted: 8939 Descript ...
- poj3254 Corn Fields 利用状态压缩求方案数;
Corn Fields 2015-11-25 13:42:33 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10658 ...
随机推荐
- Java 线程锁机制 -Synchronized Lock 互斥锁 读写锁
(1)synchronized 是互斥锁: (2)ReentrantLock 顾名思义 :可重入锁 (3)ReadWriteLock :读写锁 读写锁特点: a)多个读者可以同时进行读b)写者必须互斥 ...
- Property 'id' not found on type java.lang.String
改为 忘写了$符,取不出来,因此报错!
- 福州大学W班-团队作业-随堂小测(同学录)成绩
作业链接 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1246 作业要求 1.题目 即编写一个能够记 ...
- 20145237 实验二 “Java面向对象程序设计”
20145237 实验二 “Java面向对象程序设计” 实验内容 • 理解并掌握面向对象三要素:封装.继承.多态 • 初步掌握UML建模 • 熟悉S.O.L.I.D原则 • 使用TDD设计实现复数类 ...
- 201621123068 《Java程序设计》第1周学习总结
1. 本周学习总结 本周学习了如何使用Java来编写程序,还没展开学习具体的语言,但是也花了大量的时间搞清楚Java运行的原理.明白了Java是一种可以跨平台运行语言,搞清了jdk,jre,jvm之间 ...
- 大数据技术Hadoop笔试题
Hadoop有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.以下是由应届毕业生网小编J.L为您整理推荐的面试笔试题目和经验,欢迎参考阅读. 单项选择题 1. 下面哪个程序负责 H ...
- service层报错找不到方法Invalid bound statement (not found)
报错信息如下 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.imooc.se ...
- sql2008r2,以前好好可以用的,但装了vs2017后,连接不上了,服务也停了,结果手动也 启动不了, 无法加载或初始化请求的服务提供程
日志: 2017-12-14 12:33:17.53 服务器 A self-generated certificate was successfully loaded for encryption.2 ...
- java中DelayQueue的一个使用陷阱分析
最近工作中有接触到DelayQueue,网上搜索资料的时候发现一篇文章谈到DelayQueue的坑.点击打开链接 文中已经总结了遇到坑的地方,还有解决方案.不过我第一眼看一下没弄明白为什么,所以翻了翻 ...
- django处理cookie的机制
title: django处理cookie的机制 tags: djaogo, cookie, session grammar_cjkRuby: true --- cookie的意义 在多数日常使用的网 ...