数学题

令 \(A_n\) 为 \(2\times n\) 的墙壁放满块的方案数,考虑递推。

显然 \(A_0=1\),我们令对于 \(k<0\),\(A_k=0\) .

放直线型的块非常好递推:

此时答案即为 \(A_{n-1}+A_{n-2}\) .

接下来考虑放 L 型块的:

显然,两个 L 型块可以并成长方形:

但是也可以通过摆几个横着的块再合并:

所以此时答案为 \(2(A_{n-3}+A_{n-4}+\cdots+A_0)\) .

把两个加起来,得到

\[\large\begin{aligned}A_n&=A_{n-1}+A_{n-2}+2\left(\sum_{i=0}^{n-3}F_i\right)\\&=A_{n-1}+A_{n-2}+\sum_{i=0}^{n-3}A_i+\sum_{i=0}^{n-3}A_i\\&=\sum_{i=0}^{n-1}A_i+\sum_{i=0}^{n-3}A_i&\end{aligned}
\]

如果直接暴力转移每次是 \(O(n)\) 的,总复杂度也就是 \(O(n^2)\) 的,显然会 tle。

注意到这是静态区间求和,所以考虑前缀和。令 \(S_i=\sum\limits_{j=0}^iA_j\),递推式变为

\[\large A_n=S_{n-1}+S_{n-3}
\]

这个 \(S\) 可以在转移的时候递推求出来,这样就是 \(O(n)\) 的了,可以通过。

注意到这个式子里面很多 \(A_i\) 被反复加了,分别令 \(n=k\) 和 \(n=k+1\),得:

\[\large\begin{aligned}A_k&=\sum_{i=0}^{k-1}A_i+\sum_{i=0}^{k-3}A_i\\&=A_{k-1}+A_{k-2}+2A_{k-3}+\sum_{i=0}^{k-4}A_i\end{aligned}
\]
\[\large\begin{aligned}A_{k-4}&=\sum_{i=0}^{k-2}A_i+\sum_{i=0}^{k-4}A_i\\&=A_{k-2}+A_{k-3}+2\sum_{i=0}^{k-4}A_i\end{aligned}
\]

减一下,得到 \(A_k-A_{k-1}=A_{k-1}+A_{k-3}\),即 \(A_k=2A_{k-1}+A_{k-3}\) .

用这个式子递推即可。

题解 P1999【覆盖墙壁】的更多相关文章

  1. 洛谷 P1990 覆盖墙壁

    P1990 覆盖墙壁 题目描述 你有一个长为N宽为2的墙壁,给你两种砖头:一个长2宽1,另一个是L型覆盖3个单元的砖头.如下图: 0 0 0 00 砖头可以旋转,两种砖头可以无限制提供.你的任务是计算 ...

  2. 题解 洛谷P1990 覆盖墙壁

    DP康复训练题 原题:洛谷P1990 核心:递推/DP 题源应该是铺地砖,所以采用一摸一样的思路,只是有两种不同的方块 我们先用最最简单的方式尝试一下枚举当最后一行被填满的情况: 1.如果我们只用第一 ...

  3. 【题解】覆盖问题 BZOJ1052 HAOI2007 二分

    题目描述 某 人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用 3个LL的正方形塑料薄膜将小树遮起来.我 ...

  4. 贪心(qwq)习题题解

    贪心(qwq)习题题解 SCOI 题解 [ SCOI2016 美味 ] 假设已经确定了前i位,那么答案ans一定属于一个区间. 从高位往低位贪心,每次区间查找是否存在使此位答案为1的值. 比如6位数确 ...

  5. POJ3680:Intervals(离散化+最大流最小费用)

    Intervals Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9320   Accepted: 4014 题目链接:ht ...

  6. 【JOI Camp 2015】IOIO卡片占卜——最短路

    题目 [题目描述]K 理事长是占卜好手,他精通各种形式的占卜.今天,他要用正面写着 `I` ,背面写着 `O` 的卡片占卜一下日本 IOI 国家队的选手选择情况.占卜的方法如下:1. 首先,选取五个正 ...

  7. Computer Vision_33_SIFT:PCA-SIFT A More Distinctive Representation for Local Image Descriptors——2004

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  8. Code[VS] 1022 覆盖 题解

    Code[VS] 1022 覆盖 题解  Hungary Algorithm 题目传送门:Code[VS] 1022 题目描述 Description 有一个N×M的单位方格中,其中有些方格是水塘,其 ...

  9. codevs3027线段覆盖2(DP)题解

    题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段 ...

随机推荐

  1. 读 Angular 代码风格指南

    读 Angular 代码风格指南 本文写于 2021 年 1 月 17 日 原文地址:Angular 文档 该文章拥有完整的代码风格指南--大到如何编排文件夹,小到如何进行变量命名都涉及.但是与 ng ...

  2. (原创)[C#] MEF 主程序与插件加载不同版本的DLL

    一.前言 MEF(Managed Extensibility Framework),是轻量级的插件框架.使用简单,功能强大.详细介绍见MSDN,本文不再赘述. 在使用MEF时,会遇到这样一种场景: 主 ...

  3. .NET 6 从0到1使用Docker部署至Linux环境

    前言 作为一名.Net菜鸟开发者,平时对Linux接触的并不多,项目部署这一块都是运维小哥顶着,但是作为混迹在云原生项目组的人咱也不能什么都不知道,该掌握的知识还是要懂的,所以借着这次机会,梳理一下项 ...

  4. 记一次IIS网站启动不了的问题排查

    今天清理了下机器中的IIS网站,将很久不用的网站都删除. 因为需要删除的比较多,正在使用的很少,就将网站全部删除了,然后准备重新添加需要用的. 在添加了网站后,点击启动按钮,发现网站启动不了,因为网站 ...

  5. 迄今微软不同时期发布的SQL Server各版本之间的大致区别,供参考查阅

    通过在互联网上收集及微软官方网站等途径获取相关资料进行整理汇总出Microsoft SQL Server各个版本(SQL Server 2008 R2.SQL Server 2012.SQL Serv ...

  6. Java-SpringBoot-使用多态给项目解耦

    Java-SpringBoot-使用多态给项目解耦 提及 今天在打算维护一下智慧社区这个项目的时候,想到项目是使用Satoken这个开箱即用的授权和认证的组件,因为在项目开启的时候对SpringSec ...

  7. Redis配置登录密码

    更新记录 2022年6月14日 发布. 打开配置文件 vi /etc/redis/redis.conf 搜索来找到下面这行注释 #requirepass foobared 取消注释,把 foobare ...

  8. uniapp使用scroll-view与swiper组件实现tab滑动切换页面需要注意的问题

    效果图: tab栏可以滑动,切换页面跟随tab栏同步滑动.这里需要注意的是使用swiper组件时,它会有一个默认的高度,你必须动态的获取数据列表的高度覆盖原来的默认高度. 下面是代码 html < ...

  9. 从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)

    前言 话不多说,这篇文章主要讲述如何从0到1搭建一款适用于Vue.js的自定义配置视频播放器.我们平时在PC端网站上观看视频时,会看到有很多丰富样式的视频播放器,而我们自己写的video标签样式却是那 ...

  10. UiPath保存图片操作的介绍和使用

    一.保存图像 (Save Image)的介绍 可以将图像保存到磁盘的一种活动 二.保存图像 (Save Image)在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为序列 ...