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

「KDOI-07」能量场

https://www.luogu.com.cn/problem/P10881

神仙题啊。

首先可以选择一个环,然后缩掉环后就是一个树,可以使用矩阵树定理。复杂度 \(O(2^nn^3)\)

考虑矩阵树定理的式子 \(\det(D-A)\),其中 \(A_{i,j}=a_i+a_j\)\(D\) 只在对角线上有值,然后发现 \(A\) 的秩 \(\le 2\),于是把行列式展开成 \(\sum\limits_{p} (-1)^{inv(p)}(D_{i,p_i}-A_{i,p_i})\),考虑括号选择 \(A_{i,p_i}\) 这一项的 \(i\) 的集合为 \(S\),则其余一定满足 \(i=p_i\),然后如果 \(|S|\ge 3\),由于 \(A\) 的秩 \(\le 2\),于是它的贡献为 \(0\)。于是满足 \(i\neq p_i\) 至多有两个,可以暴力枚举。

如果 \(|S|=1\),选择一个 \(i\),则贡献为 \(-2A_{i,i} \prod\limits_{j \neq i} D_{j,j}\),如果选择 \(i,j\),则贡献为 \((A_{i,i}A_{j,j}-A_{i,j}A_{j,i})\prod\limits_{z \neq i,j} D_{z,z}\)。把前面展开一下就是 \((2a_ia_j-a_i^2-a_j^2) \prod\limits_{z \neq i,j} D_{z,z}\)

复杂度 \(O(2^nn^2)\)

由于此时计算行列式的方式足够简单,所以可以塞到 dp 里,在 dp 时计算。接下来看一下怎么计算环,对于一个环,显然 \(a_i\) 会贡献 \(1,a_i,a_i^2\),然后显然贡献 \(a_i^2\)\(i\) 数量和贡献 \(1\) 的数量相等,然后如果要把 \(0,1,2\) 三种指数排成一个环的话,相当于去除 \(1\) 之后 \(0,2\) 交替出现。然后这个方案数是容易的。

于是可以设计 \(f_{i,a,b,c,op}\) 表示 dp 到第 \(i\) 个数,钦定在环里的点指数为 \(0,1,2\) 的分别出现 \(a,b,c\) 个,\(op\) 表示行列式里 \((2a_ia_j-a_i^2-a_j^2)\) 的贡献状态,显然 \(op\) 的大小是 \(O(1)\) 的。

这样可以 \(O(1)\) 转移,复杂度 \(O(n^4)\)

http://www.zskr.cn/news/9414.html

相关文章:

  • AfriMed-QA
  • 基于LQR控制器的柔性机械臂抑振
  • 202312_Dest0g3_StrageTraiffic
  • 【前端高频面试题】- React篇 - 指南
  • PDF24 Creator(完全免费多功能PDF工具箱) 易于使用 多语言支持 - 教程
  • 彩笔运维勇闯机器学习--lasso回归
  • IP地址的配置
  • vscode彻底删除安装过的插件和个人配置信息
  • 冰箱 EMC 测试中 RE 超标?近场探头定位干扰源实操指南
  • Codeforces Round 1052 (Div. 2) E. Yet Another MEX Problem
  • 9.21 判断推理 6/10
  • pc.vivo.com vivo办公套件网页,拼图验证失败的原因
  • J-link RTT 助手,串口助手,数据可视化,波形图显示,多多盒子
  • 第五届电子信息工程与计算机技术国际学术会议(EIECT 2025)
  • 2025年污染治理与可持续发展国际学术会议(PGSD 2025)
  • 深入解析:对比:ClickHouse/MySQL/Apache Doris
  • 深入解析:2025-09-05 CSS3——盒子模型
  • JDK 25 正式发布,长期支持
  • linux驱动制作
  • Android普通应用切到后台后,多长时间会被系统回收 - 教程
  • 2025.9.22——1橙
  • huggingface.co 无法访问
  • 【GitHub每日速递 250922】开源 AI 搜索引擎 Perplexica:本地大模型 + 多模式搜索,免费又强大!
  • 大厂是怎么识别“高潜员工”的?
  • Day05-1-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\scanner-Demo01~05(简易计算器)
  • Day05-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\struct-ifDemo01~03+shunxuDemo
  • Codeforces Round 1052 (Div. 2)
  • PatternMatcher-Pytorch
  • uboot启动流程
  • 内存泄漏