热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JZOJ1266.玉米田

1266.玉米田(cowfood.pasccpp)(FileIO):input:cowfood.inoutput:cowfood.outTimeLimits:1000msMemor

Description

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

Input

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

Output

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

Sample Input

2 3
1 1 1
0 1 0

Sample Output

9

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

1 #include
2 #include
3 #include
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][&#43;&#43;e[h][0]] &#61; s;
17 return;
18 }
19 if (a[h][dep] && !choose) dfs(h, dep &#43; 1, s &#43; pre[dep - 1], 1);
20 dfs(h, dep &#43; 1, s, 0);
21 }
22
23 void pre_work()
24 {
25 pre[0] &#61; 1;
26 for (int i &#61; 1; i <&#61; 18; i&#43;&#43;)
27 pre[i] &#61; pre[i - 1] * 2;
28 for (int i &#61; 1; i <&#61; n; i&#43;&#43;)
29 dfs(i, 1, 0, 0);
30 }
31
32 void dp()
33 {
34 for (int i &#61; 1; i <&#61; e[1][0]; i&#43;&#43;)
35 f[1][e[1][i]] &#61; 1;
36 for (int i &#61; 2; i <&#61; n; i&#43;&#43;)
37 {
38 for (int j &#61; 1; j <&#61; e[i][0]; j&#43;&#43;)
39 for (int k &#61; 1; k <&#61; e[i - 1][0]; k&#43;&#43;)
40 if ((e[i][j] & e[i - 1][k]) &#61;&#61; 0)
41 f[i][e[i][j]] &#43;&#61; f[i - 1][e[i - 1][k]];
42 }
43 ans &#61; 0;
44 for (int i &#61; 1; i <&#61; e[n][0]; i&#43;&#43;)
45 ans &#43;&#61; f[n][e[n][i]], ans %&#61; 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 &#61; 1; i <&#61; n; i&#43;&#43;)
54 {
55 for (int j &#61; 1; j <&#61; m; j&#43;&#43;)
56 scanf("%d", &a[i][j]);
57 }
58 pre_work();
59 dp();
60 printf("%lld", ans);
61 }

View Code

 

代码如下&#xff1a;

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



推荐阅读
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在Python多进程编程中,`multiprocessing`模块是不可或缺的工具。本文详细探讨了该模块在多进程管理中的核心原理,并通过实际代码示例进行了深入分析。文章不仅总结了常见的多进程编程技巧,还提供了解决常见问题的实用方法,帮助读者更好地理解和应用多进程编程技术。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • PyCharm 作为 JetBrains 出品的知名集成开发环境(IDE),提供了丰富的功能和强大的工具支持,包括项目视图、代码结构视图、代码导航、语法高亮、自动补全和错误检测等。本文详细介绍了 PyCharm 的高级使用技巧和程序调试方法,旨在帮助开发者提高编码效率和调试能力。此外,还探讨了如何利用 PyCharm 的插件系统扩展其功能,以满足不同开发场景的需求。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • HDU1176:免费馅饼问题的动态规划解法分析
    题目“免费馅饼”通过动态规划方法进行了解析。该问题的时间限制为 Java 2000ms 和其他语言 1000ms,内存限制为 Java 65536K 和其他语言 32768K。本文详细探讨了如何利用动态规划算法高效求解此问题,并对算法的时间复杂度和空间复杂度进行了深入分析。此外,还提供了具体的实现步骤和代码示例,帮助读者更好地理解和应用这一方法。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 开发心得:成为SGU475智能筏工的策略与技巧 ... [详细]
  • 本文详细解析了九度编程平台上的斐波那契数列高效算法挑战(题目编号:1387)。该挑战要求在1秒的时间限制和32兆的内存限制下,设计出高效的斐波那契数列计算方法。通过多种算法的对比和性能分析,本文提供了优化方案,帮助参赛者在限定资源条件下实现高效计算。 ... [详细]
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 在MFC框架中,存在多个全局函数,用于在不同对象间获取信息或创建新对象。其中,`afxGetApp`函数尤为关键,它能够帮助开发者轻松获取当前应用程序的实例指针。本文将详细解析`afxGetApp`函数的内部机制及其在MFC应用程序中的具体应用场景,探讨其在提升代码可维护性和灵活性方面的优势。此外,还将介绍其他常用全局函数如`AfxWinInit()`和`AfxBeginThread()`的功能和使用方法,为开发者提供全面的参考。 ... [详细]
  • 在Python中,是否可以通过使用Tkinter或ttk库创建一个具有自动换行功能的多行标签,并使其宽度能够随着父容器的变化而动态调整?例如,在调整NotePad窗口宽度时,实现类似记事本的自动换行效果。这种功能在设计需要显示长文本的对话框时非常有用,确保文本内容能够完整且美观地展示。 ... [详细]
  • 利用 Python 管道实现父子进程间高效通信 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
author-avatar
薇薇MM81_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有