首页 > 其他分享 >AGC013E Placing Squares

AGC013E Placing Squares

时间:2024-04-23 18:34:29浏览次数:24  
标签:AGC013E 木板 格子 隔板 方案 Placing 正方形 Squares dp

传送门

给定一个长度为 \(n\) 的木板,木板上有 \(m\) 个标记点,距离木板左端点的距离分别为 \(X_i\),现在你需要在木板上放置一些不相交正方形,正方形需要满足

  • 正方形的边长为整数

  • 正方形底面需要紧贴木板

  • 正方形不能超出木板,正方形要将所有的木板覆盖

  • 标记点的位置不能是两个正方形的交界处

一种合法的正方形放置方案的贡献为所有正方形面积的乘积,也就是为 \(\prod\limits_{i=1}^k a_i^2\),\(a_i\) 为正方形的边长。

请你求出所有合法方案的贡献之和,答案对 \(10^9+7\) 取模。

\(n \leq 10^9\),\(m \leq 10^5\)。


问题描述不好处理,我们可以这么转化问题:

有 \(n\) 个格子,要在格子之间放隔板。同时要在每一个隔出来的段里的格子放一个黑球和一个白球,允许球重叠。求方案数。

(这里放黑白球的方案数对应了原问题的平方)

\(dp_{i,j}\) 表示前 \(i\) 个格子,从上一个隔板到格子 \(i\) 放了 \(j\) 个球的方案数。对不允许在左侧放隔板的格子和允许放隔板的分别写转移方程。

普通格子:

  1. \(dp_{i+1,0}=dp_{i,0}+dp_{i,2}\)。若 \(i,i+1\) 之间不放隔板,方案数 \(dp_{i,0}\);否则方案数 \(dp_{i,2}\);

  2. \(dp_{i+1,1}=2dp_{i,2}+(2dp_{i,0}+dp_{i,1})\)。若 \(i,i+1\) 之间放隔板,要使 \([i+1,i+1]\) 这个区间有一个球,有两种可能(黑球白球),再乘上上一段的方案数 \(dp_{i,2}\);如果不放隔板,可能是之前没有,在 \(i+1\) 放了一个,也可能是之前就有了。

  3. \(dp_{i+1,2}=dp_{i,2}+(dp_{i,0}+dp_{i,1}+dp_{i,2})\)。同理分析。

禁止格子:

  1. \(dp_{i+1,0}=dp_{i,0}\)。

  2. \(dp_{i+1,1}=2dp_{i,0}+dp_{i,1}\)。

  3. \(dp_{i+1,2}=dp_{i,0}+dp_{i,1}+dp_{i,2}\)。

用矩阵快速幂即可。

标签:AGC013E,木板,格子,隔板,方案,Placing,正方形,Squares,dp
From: https://www.cnblogs.com/FLY-lai/p/18153514

相关文章

  • [ABC223E] Placing Rectangles 题解
    [ABC223E]PlacingRectangles题解思路解析根据题目可知,其实三个长方形无非只有以下两种摆放方式。若大长方形长为\(y\),宽为\(x\),则我们对于第一种情况就固定住宽,判断能否使长度小于等于长;对于第二种情况同样固定住宽,此时A长方形右边空间的长就确定了,就只需要判断B,C......
  • 客快物流大数据项目(九十三):ClickHouse的ReplacingMergeTree深入了解 ClickHouse清除重
    ​ClickHouse的ReplacingMergeTree深入了解为了解决MergeTree相同主键无法去重的问题,ClickHouse提供了ReplacingMergeTree引擎,用来对主键重复的数据进行去重。删除重复数据可以使用optimize命令手动执行,这个合并操作是在后台运行的,且无法预测具体的执行时间。在使用optimize命......
  • [论文阅读] Replacing softmax with ReLU in Vision Transformers
    Pretitle:ReplacingsoftmaxwithReLUinVisionTransformersaccepted:Arxiv2023paper:https://export.arxiv.org/abs/2309.08586code:None关键词:attention,parallelization阅读理由:GoogleDeepmind,标题挺有意思Idea序列缩放能缓解ReLU等激活函数在attention中替......
  • Python用偏最小二乘回归Partial Least Squares,PLS分析桃子近红外光谱数据可视化
    全文链接:https://tecdat.cn/?p=34376原文出处:拓端数据部落公众号PLS,即偏最小二乘(PartialLeastSquares),是一种广泛使用的回归技术,用于帮助客户分析近红外光谱数据。如果您对近红外光谱学有所了解,您肯定知道近红外光谱是一种次级方法,需要将近红外数据校准到所要测量的参数的主要......
  • [945] Replacing a string in all cells of a Pandas DataFrame
    ToreplaceastringinallcellsofaPandasDataFrame,wecanusethe str.replace()method,whichallowsustoperformstringreplacementsoneachelementofacolumn. Hereisanexample:importpandasaspd#CreateasampleDataFramedata={'Co......
  • Placing Jinas
    传送门对于这种网格图的操作,因为是加法操作,所以可以有结合律和交换律,也就是说操作顺序是无关紧要的。所以从上到下,从左到右考虑所有操作。对于第一个格子的\(1\),它一定要被减去1次,而且只能被减去1次,因为只有在它格子上操作才能影响到它,它不可能被其他格子的操作加上1。此时第......
  • Replacing gcc and g++ with GNU version in macOS
    AfterweinstallXcodeCommandLineTools,wewillgetgccandg++in/Library/Developer/CommandLineTools/usr/binandthesamecontentsin/usr/bin.Buttheproblemisthatgccandg++aresameasclangandclang++.Proofcanbeobtainedfromthefollowin......
  • [AGC013E] Placing Squares 题解
    PlacingSquares关键是将问题从抽象的“正方形面积”转为具象的形式:一段长度为\(d\)的区间,有两个不同的小球要放进去,则总放置方案就是\(d^2\),且不同的区间间方案是通过乘法原理结合的,刚好是题目中\(\prodd^2\)的形式。于是我们可以设计DP:设\(f_{i,j}\)表示前\(i\)个......
  • [ARC125B] Squares 题解
    题意给定正整数\(N\),求满足如下条件的正整数对\((x,y)\)的数量:\(1\lex,y\leN\)\(x^2-y\)为完全平方数(\(0\)也是完全平方数)(\(1\leN\le10^{12}\))。题解因为\(x^2-y\)为完全平方数,设其为\(z^2\),那么有\[\begin{aligned}x^2-y=z^2\\\end{al......
  • Replacing gcc and g++ with GNU version in macOS
    AfterweinstallXcodeCommandLineTools,wewillgetgccandg++in/Library/Developer/CommandLineTools/usr/binandthesamecontentsin/usr/bin.Buttheproblemisthatgccandg++aresameasclangandclang++.Proofcanbeobtainedfromthefollowin......