热门标签 | 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



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
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社区 版权所有