数学题

令 \(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. 常见排序算法的golang 实现

    五种基础排序算法对比 五种基础排序算法对比 1:冒泡排序 算法描述 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素 ...

  2. 594. Longest Harmonious Subsequence - LeetCode

    Question 594. Longest Harmonious Subsequence Solution 题目大意:找一个最长子序列,要求子序列中最大值和最小值的差是1. 思路:构造一个map,保存 ...

  3. 好客租房17-jsx的样式处理

    1行内样式-style <h1 style={{color:"red",backgroundColor:"skyblue"}}> jsx的样式处理 ...

  4. vue设计模式

    vm 的设计模式. mvvm 是 model-view-viewModel 的简写. model 是数据模块,view 是渲染视图,viewModel 是沟通视图和数据模块的桥梁. vue 中使用了哪 ...

  5. CentOS7 安装高版本gcc, g++, gfortran等工具

    SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为用户提供一种方便.安全地安装和使用应用程序和运行时环境的多个版本的方式. De ...

  6. SSE图像算法优化系列三十二:Zhang\Guo图像细化算法的C语言以及SIMD指令优化

    二值图像的细化算法也有很多种,比较有名的比如Hilditch细化.Rosenfeld细化.基于索引表的细化.还有Opencv自带的THINNING_ZHANGSUEN.THINNING_GUOHALL ...

  7. CF1682F MCMF?

    题意: 费用流,其实bushi 给你长为\(n\)的序列\(a\),\(b\).\(a\)单增,\(b\)有正有负. \(q\)次询问\([l,r]\),保证\(\sum\limits_{i=l}^r ...

  8. Java有根儿:Class文件以及类加载器

    JVM 是Java的基石,Java从业者需要了解.然而相比JavaSE来讲,不了解JVM的一般来说也不会影响到工作,但是对于有调优需求或者系统架构师的岗位来说,JVM非常重要.JVM不是一个新的知识, ...

  9. 【Java面试】请你简单说一下Mysql的事务隔离级别

    一个工作了6年的粉丝,去阿里面试,在第一面的时候被问到"Mysql的事务隔离级别". 他竟然没有回答上来,一直在私信向我诉苦. 我说,你只能怪年轻时候的你,那个时候不够努力导致现在 ...

  10. vue海康视频播放组件

    海康视频插件web文档 渲染组件后,调用initPlugin函数,传入一个code数组 <template> <div :title="name" :id=&qu ...