蓝桥杯2013年第四届真题-格子刷油漆

2024-04-07 01:48

本文主要是介绍蓝桥杯2013年第四届真题-格子刷油漆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
在这里插入图片描述
思路:
对于题目给出的几个行走规则,走的方式有很多;但是以某个格子为出发点的方式固定。

将整个矩形刷完,我们的起点主要分为以下两大类:
1.从四个顶点之一出发
2.从中间某个点出发

1.从四个顶点之一出发

①第一步走同一列的另一个格子,然后再走下一列。接着重复这个过程。如下图所示:
在这里插入图片描述
假设从顶点A出发,那么第一步没得选,只能走向B;接着在B点时,此时就有两种选择方案,要么走向C,要么走向D。假设走向了D,那么此时D点就只能选C,接着在C点时,其又可以选择E或F……然后重复上面这个过程,直到最终走到矩形的另一侧

这种情况下,我们用a[i] 来表示一个2x i 的 矩形 从一个顶点出发,要按规则走完全部格数的方案数。

a[i]=a[i-1]*2;

②第一步走下一列,之后也还是不断地走下一列,当最终走到最后一列后再返回。返回时,由于格子的高度为2,那么在返回时,路径唯一,如下图所示:
在这里插入图片描述
假设从顶点A出发,那么第一步可以选C或D共两种方案,假设选的是C,那么接下来又可以选择E或F……当最后到了最后一列,比如到了I,那么此时返回的路线也就唯一确定了
我们用b[i] 表示从一个顶点 出发最后到达他的相对位置的方案种数为多少

于是得到状态转移方程:b[ i ]=2×b[ i-1] (乘2的原因是每次都有两种选择,如在A点可选C或D)

③第一步走另一列,再由该列返回前一列,然后再从前一列走向另一列的另一个格子,如下图所示

在这里插入图片描述
在这里插入图片描述
假设从顶点A出发,那么其有两条路线:A->C->B->D或A->D->B->C,假设到了点D,则D又可以有两种选择(要么到E要么到F),此时又可再重复在点A的行为,直到最终到达矩形的另一侧
显然这也属于“一趟过去,不再返回”的类型,因此也用数组a来表示,则可以把问题规模转换成a[ i-2 ]
于是得到状态转移方程:a[ i ] = 2 × 2 × a[ i-2 ] (第一个乘2是选C或D,二个乘2是选E或F)

2.从中间出发

在这里插入图片描述
我们从图中i=3(E点)处出发(以i为分割线,将图分为左边的ABCDEF以及右边的GHIJ),为了遍历所有格子,我们需要先走完左边的这个整体(特别注意:这里必须倒回到F才能继续走右边),然后再把右边视为以G或者H为起点的一组格子将其走完(因此这里需要乘以2,两种起点出发嘛)
分析上述的流程,可以得到从中间出发的方案数为:( b[ i ] ) × ( 2 × a[ n-i ] )
同理,我们可以先走右边的EFGHIJ,然后再走左边的ABCD
这样的方案数为:(b[ n-i+1]) × (2×a[ i - 1])
由于上面的所有起始点都是以E为出发点行走的,我们同理也可以以F为起点出发,那么从第i列开始刷漆的方法就有:[ (b[ i ])×(2×a[ n-i ])+(b[ n-i+1])×(2×a[ i - 1]) ]×2

用动态规划法,

package com.lanqiao2013;import java.util.Scanner;public class GeZiShuayouqiDemo {static final long MOD=1000000007;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = 0;n= scanner.nextInt();scanner.close();if(n==1) { System.out.println(2);return;}	long[] a = new long[1005];long[] b = new long[1005];// base casea[1] = 1;a[2] = 6;b[1] = 1;b[2] = 2;// 从四个角开始for (int i = 3; i <= n; i++) {b[i] = (2 * b[i - 1])%MOD;a[i] = (2 * a[i - 1] + b[i] + 2 * 2 * a[i - 2])%MOD;}long sum = 4 * a[n]%MOD;// 从中间开始for (int i = 2; i < n; i++) {sum = (sum + ((b[i]) * (2 *a[n - i]) + (b[n - i + 1]) * (2 * a[i - 1])) * 2)%MOD;}System.out.println(sum);}}

这篇关于蓝桥杯2013年第四届真题-格子刷油漆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881357

相关文章

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

上海大学《2022年836+915自动控制原理真题及答案》 (完整版)

Part1:2022年上海大学真题题目 学硕836 专硕915 Part2:2022年上海大学真题答案 学硕836 专硕915

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

华为OD机试真题-猜字谜-2024年OD统一考试(E卷)

题目描述 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如 nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下.对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 1、变换顺序以后一样的,比如通过变换 w和e的顺序,“nwes”跟“news”是可以完全对应的: 2、字母去重以后是一样的,比如“woood”和“wood”是一样的,它们去重后都是“wod'请你写一个程序帮忙在