当前位置: 首页 > ai >正文

P8784 [蓝桥杯 2022 省 B] 积木画

P8784 [蓝桥杯 2022 省 B] 积木画 - 洛谷

题目描述

小明最近迷上了积木画,有这么两种类型的积木,分别为 I 型(大小为 2 个单位面积) 和 L 型 (大小为 3 个单位面积):

I 型积木

同时,小明有一块面积大小为 2×N 的画布,画布由 2×N 个 1×1 区域构成。小明需要用以上两种积木将画布拼满,他想知道总共有多少种不同的方式? 积木可以任意旋转,且画布的方向固定。

输入格式

输入一个整数 N,表示画布大小。

输出格式

输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007(即 109+7)取模后的值。

输入输出样例

输入 #1复制

3

输出 #1复制

5

说明/提示

【样例说明】

五种情况如下图所示, 颜色只是为了标识不同的积木: 

【评测用例规模与约定】

对于所有测试用例,1≤N≤1e7。

蓝桥杯 2022 省赛 B 组 G 题。

思路:


代码:
 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 10000000 + 10, mod = 1e9 + 7;
ll dp[N][3]; 
// dp[i][0] 表示第i列只有第一行凸 
// dp[i][1] 表示第i列只有第二行凸 
// dp[i][2] 表示第i列两行都凸 
int main()
{dp[0][2] = 1;dp[1][2] = 1; // 第一列只有一种放法,竖着放ll n;cin >> n;for(ll i = 2; i <= n; ++i){dp[i][0] = (dp[i - 1][1] + dp[i - 2][2]) % mod;dp[i][1] = (dp[i - 1][0] + dp[i - 2][2]) % mod;dp[i][2] = (dp[i - 1][2] + dp[i - 1][0] + dp[i - 1][1] + dp[i - 2][2]) % mod;}cout << dp[n][2];return 0;
}

http://www.xdnf.cn/news/13940.html

相关文章:

  • 基于 STM32 七段数码管显示模块详解
  • 如何设置爬虫的访问频率?
  • 基于51单片机的直流电机运动控制proteus仿真
  • vue二级路由的写法,以及动态路由的匹配和获取动态参数的值
  • FreeSWITCH mod_curl 和 mod_xml_rpc 测试
  • JVM 内存、JMM内存与集群机器节点内存的联系
  • 【redis——缓存穿透】
  • 基于PSO粒子群优化的VMD-LSTM时间序列预测算法matlab仿真
  • git 下载安装并连接gitee
  • 一键给你的网页增加 ios26 液态玻璃效果
  • Android 手机如何实现本地视频音频提取?实战教程来了
  • 提示词Prompts(2)
  • 提示词Prompts(1)
  • iOS-SM3加密算法N种集成
  • MySql基础教程:事务基础知识
  • 通信安全员A,B,C证有什么区别?
  • 一文讲清网络变压器、芯片和 RJ45 之间的接线
  • WebView工作原理全解析:如何实现混合开发的无缝衔接
  • python transformers库笔记(BertTokenizerFast类)
  • 高频面试之12 HBase
  • javascript中浏览器自带的实用方法
  • 液氮罐里的重要样本老是担心安全受到损坏如何操作可以在线记录开门时间呢?
  • 使用GpuGeek训练图像分类器:从入门到精通
  • ubuntu24.04.2安装docker自动化脚本
  • React Native 性能优化实践
  • 【Linux网络编程】基于udp套接字实现的网络通信
  • 2024年06月青少年软件编程(图形化)等级考试试卷(四级)
  • 一名高级运维工程师,一台新服务器,安装windows系统后,在网络攻防(护网行动)形式下,应该怎么做安全加固?
  • Arduino入门教程:​​​​​​​2、代码基础
  • 在 cuda 基础环境中安装完整的cupy