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

[题解]P11126 [ROIR 2024] 三等分的数组 (Day 2)

P11126 [ROIR 2024] 三等分的数组 (Day 2)

考虑到数的选取与输入顺序无关,我们将数丢到桶里,记 \(c_x\)\(x\) 出现的次数。

那么我们取出三元组的过程可以描述为下面二者之一:

  • 选取 \(c\) 中的一个位置,将其减去 \(3\)
  • 选取 \(c\) 中连续的三个位置,将其减去 \(1\)

\(f[x][i][j]\) 表示当前考虑到 \(c\) 中的第 \(x\) 位,第 \(x\) 位消去了 \(i\) 个,第 \(x-1\) 位消去了 \(j\) 个,\(x-2\) 及之前的位置全部消去的答案。

这样设状态是可以正确转移的,因为能消除第 \(x-2\) 位的最大位置就是 \(x\),如果留到 \(x\) 之后就永远消不掉了。

我们可以枚举使用 \((x,x,x)\) 的次数 \(t\),则剩下的 \((i-3t)\) 必须全部用于使用 \((x-2,x-1,x)\),则有转移:

\[f[x][i][j]=\sum\limits_{t=0}^{\lfloor\frac{x}{3}\rfloor} f[x-1][j-(i-3t)][c_{x-2}-(i-3t)] \]

酱紫会 T,考虑优化。

我们发现(可以归纳理解):

\[\begin{aligned} &\quad\sum\limits_{t=0}^{\lfloor\frac{x}{3}\rfloor} f[x-1][j-(i-3t)][c_{x-2}-(i-3t)]\\ &=f[x][i-3][j]+f[x][j-i][c_{x-2}-i]\\ \end{aligned} \]

所以不需要枚举 \(t\),状态转移优化到 \(O(1)\)

考虑分析这样做的时间复杂度。

对于 \(f[x][i][j]\)\(i,j\) 的上界是 \(c_x,c_{x-1}\),所以总状态数是:

\[\sum\limits_{i=1}^m c_i c_{i-1} \]

状态数是 $O(m^2)$ 的

\[\begin{aligned} &\quad\sum\limits_{i=1}^m c_i c_{i-1}\\ &\le \sum\limits_{i=1}^m c_i^2&(\text{排序不等式})\\ &\le m^2 \end{aligned} \]

状态数是 $O(n^2)$ 的

我们将 \(c\) 按下标的奇偶性两两分组:

\[A=c_1+c_3+c_5+\dots\\ B=c_2+c_4+c_6+\dots \]

展开 \(A\times B\) 可知:

\[\sum\limits_{i=1}^m c_i c_{i-1}\le A\times B \]

\(A+B=n\),据均值不等式知 \(A\times B\le \frac{n^2}{4}\)

所以原式是 \(O(n^2)\) 的。

所以时间复杂度是 \(O(m\times \min(n^2,m^2))\),而且跑不满。

只是空间需要注意滚动数组。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=5e3+5,M=5e3+5,P=1e9+7;
int n,m,c[M],f[2][N][N];
signed main(){cin>>n>>m;m+=2;for(int i=1,x;i<=n;i++) cin>>x,x+=2,c[x]++;f[0][0][0]=1;for(int x=3,cur=1;x<=m;x++,cur^=1){for(int i=0;i<=c[x];i++){for(int j=0;j<=c[x-1];j++){if(i>=3) f[cur][i][j]=f[cur][i-3][j];else f[cur][i][j]=0;if(c[x-2]>=i&&j>=i) (f[cur][i][j]+=f[cur^1][j-i][c[x-2]-i])%=P;}}}cout<<f[m&1][c[m]][c[m-1]]<<"\n";return 0;
}
http://www.sczhlp.com/news/220192/

相关文章:

  • 10.22 CSP-S模拟37/2025多校冲刺CSP模拟赛7 改题记录
  • dedecms本地可以更换网站模板出现网站模板不存在做mod的网站
  • 网站被百度k是什么意思有经验的唐山网站建设
  • 如何下载别人网站模板网站建设的收获
  • 东莞网站优化排名专业网站建设工作室
  • 高端网站开发多少钱网站如何运营维护
  • 一般网站自己可以做播放器吗外贸网站怎么做会吸引眼球
  • 怎么做娱乐电玩网站现在网站主怎么做淘宝客
  • 做教案比较好的网站2021跨境电商最火的产品
  • 怎样打造营销型网站建设2023年阳性最新上班政策
  • wap网站和app开发合肥网站建设设计
  • 江苏网站开发建设多少钱南沙区交通和建设局网站
  • asp.net 电商网站开发wordpress 后台主题跟前台一致
  • 网站外包多少人做外包网站开发哪家好
  • 做财经类网站要许可吗怎样php网站建设
  • 史志网站建设必要性python制作网页教程
  • 网站建设工具开源青岛手机建站公司
  • 杭州软件开发公司网站私人定制app
  • 网站企业有哪些个人网站建设实训目的
  • seo在网站建设中的作用免费网页代码大全
  • 东莞电子网站建设wordpress 删除
  • 建材招商网站东营企业网站建设
  • 优秀的电子商务网站自己做外贸开通什么网站
  • 天津市建设工程质量协会网站5118营销大数据
  • 网站建设 工具辽阳做网站公司
  • 成都代做网站手机设计图制作软件
  • 20251022
  • 10月22号
  • Fortinet产品安全漏洞分析:FGFM协议未经认证连接重置漏洞
  • fiddler修改请求(修改搜索框的内容)