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 31 1 10 1 0

Sample Output

9

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

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <string>
 5 #define LL long long
 6 #define mo 100000000
 7 using namespace std;
 8 long long f[13][4100], e[13][4100], ans;
 9 int n, m, a[13][13];
10 int pre[20];
11
12 void dfs(int h, int dep, int s, int choose)
13 {
14     if (dep > m)
15     {
16         e[h][++e[h][0]]    = s;
17         return;
18     }
19     if (a[h][dep] && !choose)    dfs(h, dep + 1, s + pre[dep - 1], 1);
20     dfs(h, dep + 1, s, 0);
21 }
22
23 void pre_work()
24 {
25     pre[0] = 1;
26     for (int i = 1; i <= 18; i++)
27         pre[i] = pre[i - 1] * 2;
28     for (int i = 1; i <= n; i++)
29         dfs(i, 1, 0, 0);
30 }
31
32 void dp()
33 {
34     for (int i = 1; i <= e[1][0]; i++)
35         f[1][e[1][i]] = 1;
36     for (int i = 2; i <= n; i++)
37     {
38         for (int j = 1; j <= e[i][0]; j++)
39             for (int k = 1; k <= e[i - 1][0]; k++)
40                 if ((e[i][j] & e[i - 1][k]) == 0)
41                     f[i][e[i][j]] += f[i - 1][e[i - 1][k]];
42     }
43     ans = 0;
44     for (int i = 1; i <= e[n][0]; i++)
45         ans += f[n][e[n][i]], ans %= mo;
46 }
47
48 int main()
49 {
50     freopen("cowfood.in", "r", stdin);
51     freopen("cowfood.out", "w", stdout);
52     scanf("%d%d", &n, &m);
53     for (int i = 1; i <= n; i++)
54     {
55         for (int j = 1; j <= m; j++)
56             scanf("%d", &a[i][j]);
57     }
58     pre_work();
59     dp();
60     printf("%lld", ans);
61 }

View Code

代码如下:

转载于:https://www.cnblogs.com/traveller-ly/p/9338501.html

JZOJ 1266. 玉米田相关推荐

  1. 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    题目描述 去年秋天,奶牛们去参观了一个玉米迷宫,迷宫里有一些传送装置,可以将奶牛从一点到另一点进行瞬间转移.这些装置可以双向使用:一头奶牛可以从这个装置的起点立即到此装置的终点,同时也可以从终点出发, ...

  2. 状压dp之二之三 炮兵阵地/玉米田 By cellur925

    一.简单的状压dp 玉米田 题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ ...

  3. acwing 327. 玉米田

    327. 玉米田 题意: m * n的土地,有的土地不育,有的可以种植,要求相邻的土地不能同时种植玉米,问有多少种种植方式 题解: 状压dp,先存每一行可能的状态,然后状态转移,注意相邻不能同时种植除 ...

  4. 玉米田(加加强版)【插头dp】

    前言 水解警告,数据水勉强卡过的 正题 题目大意 n∗mn*mn∗m的网格里面有些格子被禁止,现在求选取若干个不相邻的格子的方案数. 1≤n≤120,1≤m≤211\leq n\leq 120,1\l ...

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

    P1879 [USACO06NOV]玉米田Corn Fields 时间限制 1.00s 内存限制 125.00MB 题目描述 Farmer John has purchased a lush new ...

  6. 【2016年第1期】基于大数据的玉米田四代棉铃虫发生量的预测模型

    赵雷,杨波,刘勇,牟少敏,温孚江 山东农业大学农业大数据研究中心,山东 泰安 271018 摘要:提出了一种基于支持向量机的预测模型.根据山东省1999-2013年玉米田第四代棉铃虫发生程度采集的数据 ...

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

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

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

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

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

    [bzoj 3594] [Scoi2014]方伯伯的玉米田 Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为 ...

最新文章

  1. 零基础自学python教程-零基础入门学习Python_Python教程
  2. 超简单-用协程简化你的网络请求吧,兼容你的老项目和旧的网络请求方式
  3. CCNP-EIGRP不等价负载均衡
  4. 设计时晶振的问题库(z)
  5. linux重启was控制台报错,IHS启动时报错,从was控制台传播插件失败
  6. 获取WebView缩放控件,并对其进行改造
  7. mysql 如何对表排序_学习MySQL:对表中的数据进行排序和过滤
  8. ack过来服务器未响应,DHCP服务器问题:抓不到ACK包
  9. python自动化测试难不难_我从功能测试进阶到自动化测试工程师的经验总结~|Atstudy...
  10. 如何成为一名真正专业的程序员
  11. Openlayer:学习笔记之解析地图组成
  12. STC学习:“FM收音机”原理与测试说明
  13. 小米(xiaomi)红米(Redmi)手机一开机就自动重启:find device closed unexpectedly
  14. 三位数自动递增编号函数_EXCEL中序号自动增加(如何避免隐藏行)?excel自动填充序号...
  15. swagger 怎么显示enum_dotnet core swagger filter 隐藏接口和显示枚举描述
  16. 3D模型欣赏:大眼短发战斗萝莉 游戏角色
  17. linux修改文件夹属性,Linux修改文件/文件夹属性
  18. STM32F030软件SPI控制74HC165
  19. 培训人要转型?先回答这6个问题
  20. 史上最简单的spark教程第二十三章-运行第一个机器学习Java和Python代码案例

热门文章

  1. 服务器系统和操作系统有什么区别
  2. App启动就闪退引发的深思
  3. 计算机软件工作室起名'',半永久工作室名字大全
  4. 破解验证码利器及使用利器
  5. VMware 安装Ubuntu22.04
  6. 普通用户强制修改root密码
  7. Gamemaker小课堂#0 如何为 Windows 游戏编写 DLL 扩展
  8. 码云最火爆开源项目 TOP 50,你都用过哪些?
  9. 如何把microsoft store里面的软件添加到桌面
  10. swift语言前景_席勒谈Swift语言:它的发展远远超出预期