1266. 玉米田(cowfood.pas/c/cpp) 
(File IO): input:cowfood.in output:cowfood.out

Time Limits: 1000 ms  Memory Limits: 65536 KB  Detailed Limits  

Goto ProblemSet

Description

  农民 John 购买了一处肥沃的矩形牧场,分成M*N(1 <= M <= 12; 1 <= N <= 12)个格子。他想在那里的一些格子中种植美味的玉米。遗憾的是,有些格子区域的土地是贫瘠的,不能耕种。精明的 FJ 知道奶牛们进食时不喜欢和别的牛相邻,所以一旦在一个格子中种植玉米,那么他就不会在相邻的格子中种植,即没有两个被选中的格子拥有公共边。他还没有最终确定哪些格子要选择种植玉米。           作为一个思想开明的人,农民 John 希望考虑所有可行的选择格子种植方案。由于太开明,他还考虑一个格子都不选择的种植方案!请帮助农民 John 确定种植方案总数。
 

Input

  Line 1: 两个用空格分隔的整数 M 和 N
  Lines 2..M+1: 第 i+1 行描述牧场第i行每个格子的情况, N 个用空格分隔的整数,表示 这个格子是否可以种植(1 表示肥沃的、适合种植,0 表示贫瘠的、不可种植)

Output

  Line 1: 一个整数: FJ 可选择的方案总数 除以 100,000,000 的余数。
 

Sample Input

2 3
1 1 1
0 1 0

Sample Output

9
 
做法:直接将状态压缩,然后dp统计就好了,转移方程与预处理看代码

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#define LL long long
#define mo 100000000
using namespace std;
long long f[][], e[][], ans;
int n, m, a[][];
int pre[]; void dfs(int h, int dep, int s, int choose)
{
if (dep > m)
{
e[h][++e[h][]] = s;
return;
}
if (a[h][dep] && !choose) dfs(h, dep + , s + pre[dep - ], );
dfs(h, dep + , s, );
} void pre_work()
{
pre[] = ;
for (int i = ; i <= ; i++)
pre[i] = pre[i - ] * ;
for (int i = ; i <= n; i++)
dfs(i, , , );
} void dp()
{
for (int i = ; i <= e[][]; i++)
f[][e[][i]] = ;
for (int i = ; i <= n; i++)
{
for (int j = ; j <= e[i][]; j++)
for (int k = ; k <= e[i - ][]; k++)
if ((e[i][j] & e[i - ][k]) == )
f[i][e[i][j]] += f[i - ][e[i - ][k]];
}
ans = ;
for (int i = ; i <= e[n][]; i++)
ans += f[n][e[n][i]], ans %= mo;
} int main()
{
freopen("cowfood.in", "r", stdin);
freopen("cowfood.out", "w", stdout);
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++)
{
for (int j = ; j <= m; j++)
scanf("%d", &a[i][j]);
}
pre_work();
dp();
printf("%lld", ans);
}
 
代码如下:

JZOJ 1266. 玉米田的更多相关文章

  1. bzoj 3594: [Scoi2014]方伯伯的玉米田 dp树状数组优化

    3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 314  Solved: 132[Submit][Sta ...

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

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

  3. bzoj 3594: [Scoi2014]方伯伯的玉米田

    3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec  Memory Limit: 128 MB Submit: 1399  Solved: 627 [Submit][ ...

  4. [BZOJ]4810: [Ynoi2017]由乃的玉米田

    Time Limit: 30 Sec  Memory Limit: 256 MB Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差 ...

  5. 「SCOI2014」方伯伯的玉米田 解题报告

    #2211. 「SCOI2014」方伯伯的玉米田 发现是取一个最长不下降子序列 我们一定可以把一个区间加的右端点放在取出的子序列的最右边,然后就可以dp了 \(dp_{i,j}\)代表前\(i\)个玉 ...

  6. 洛谷 P1879 [USACO06NOV]玉米田 解题报告

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

  7. bzoj 4810 由乃的玉米田 - bitset - 莫队算法

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

  8. LuoguP3674 小清新人渣的本愿 && BZOJ4810: [Ynoi2017]由乃的玉米田

    题目地址 小清新人渣的本愿 [Ynoi2017]由乃的玉米田 所以这两题也就输出不一样而已 题解 这种lxl的题还是没修改操作的题基本就是莫队 分开考虑每个询问 1.减法 \(a-b=x⇒a=b+x\ ...

  9. BZOJ4810:[YNOI2017]由乃的玉米田(莫队,bitset)

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

随机推荐

  1. Unity www动态加载网上图片

    一. 1.新建一个UGUI的Button,删掉它的Image组件,添加一个Raw Image组件.如图: 由于删除了Image组件,所以画圈的位置是空的,运行后会自动把Raw Image添加到那里. ...

  2. Unity GameObject.Find 和 transform.Find

    transform.Find(""); 找到子游戏对象,找自己找不到,能找到未激活的子游戏对象. 括号里可以是游戏对象的名字,也可以是层级. GameObject.Find(&qu ...

  3. ArrayList相关方法介绍及源码分析

    目录 ArrayList简介: ArrayList 相关方法介绍 代码表示 相关方法源码分析 ArrayList简介: java.util.ArrayList 是我们最常用的一个类,ArrayList ...

  4. Linux上的errno和strerror

    部分内容参考:https://www.douban.com/note/165931644/ 在Linux的api中: errno 是记录系统的最后一次错误代码.代码是一个int型的值,在errno.h ...

  5. Java调用webservice接口方法(SOAP message、xfire、axis)

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

  6. agc015F - Kenus the Ancient Greek(结论题)

    题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...

  7. nmon 工具的使用

    原文链接:https://www.ibm.com/developerworks/cn/aix/library/analyze_aix/ 引言 nmon 工具可以为 AIX 和 Linux 性能专家提供 ...

  8. MvvmCross框架在XamarinForms中的使用入门

    做XamarinForms快一年了,最近趁着项目不是很紧,有点空闲的时间,研究了一下MvvmCross这个框架,感觉挺高大上的.一边研究一下写点入门的东西吧,大部分的东西github都有. 1添加Pa ...

  9. Ubuntu 16.04 开启休眠功能

    因为休眠功能在部分计算机无法正常工作,所以Ubuntu默认是不开启休眠功能. 要想开启休眠功能先进行如下测试: 1.先检查是否有交换分区(swap),如果有确认交换分区至少和实际可用内存一样大. 2. ...

  10. js实现排序去重计算字符次数

    /*去重*/ var arr=[1,4,4,7,3,9,0,3,2,1,"你好","你","你好","你 "]; var ...