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. web 单例 多例

    单例多例需要搞明白两个问题:1. 什么是单例多例:2. 如何产生单例多例:3. 为什么要用单例多例4. 什么时候用单例,什么时候用多例:1. 什么是单例多例:所谓单例就是所有的请求都用一个对象来处理, ...

  2. 【转】Linq 语法

    Join操作符 适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等.对各个表之间的关系,就用这些实现对多个表的操作. 说明:在Join操作中,分别为Join(Join查询), Select ...

  3. 一个关于document.write()的问题

    Index.html中: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...

  4. Validation failed for one or more entities. See ‘EntityValidationErrors’,一个或多个验证错误 解决方法

    try{// 写数据库}catch (DbEntityValidationException dbEx){ }在 dbEx 里面中我们就可以看到

  5. SpringBoot常用应用属性配置表

    #========================================= #COMMON SPRING BOOT PROPERTIES # #This sample file is pro ...

  6. 自己实现的简单的grid

    12年在第一家公司的时候,有过很长一段时间在前端的使用研究上.一开始的时候使用ExtJs4.0 MVC 来开发前端,觉得里面的风转的组件非常好用,Panel.window.tree等等,简化了对于前端 ...

  7. Mac下对PhpStorm主题的添加

    大家都知道,作为一个PHPer,PhpStorm是圈内评价较高的一款IDE. 所以,为了有一个更加个性化的coding界面,我们有很多的主题可以使用. phpStorm自带了好几个主题,你可以通过以下 ...

  8. LeetCode Remove Element删除元素

    class Solution { public: int removeElement(int A[], int n, int elem) { ]; int i,num=n; ;i<n;i++){ ...

  9. 谈谈bootstrap在实践中的应用

    bootstrap官网是http://www.bootcss.com/ bootstrap的CDN的网址是http://www.bootcdn.cn/ 在平时写的时候尽量用CDN,这样对于网站的运行效 ...

  10. HDU1664 BFS + 数论 + 剪枝

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1664 , 一道比较蛋疼的搜索题. 这道题有很多坑点,一点处理不好就要TLE. 题意很简单,就是找到一个 ...