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

题解:AT_abc436_g [ABC436G] Linear Inequation

本题是一个完全背包问题。设 \(A=\max_{i=1}^nA_i\)

\(f(m)\) 表示 \(\sum_{i=1}^NA_ix_i=m\) 的解数,考虑写出生成函数:

\[F(z)=\prod_{i=1}^N\sum_{k=0}^{+\infty}z^{A_ik}=\prod_{i=1}^N\frac{1}{1-z^{A_i}} \]

\(f(m)=[z^m]F(z)\)

由于 \(F(z)\prod_{i=1}^N(1-z^{A_i})=1\),故 \(f(m)\) 是一个阶数最多为 \(D=\sum_{i=1}^NA_i\le NA\le 10^4\) 的线性递推。答案是 \(\sum_{m=1}^Mf(m)\),从而是一个阶数最多为 \(D+1\) 的线性递推。

通过上面的分析,你当然可以直接把线性递推系数算出来。但是我懒,所以通过完全背包求出前充分多项的值后,直接用 Berlekamp-Massey 算法求线性递推系数即可。

最后使用 Bostan-Mori 或其他算法求解线性递推即可。

时间复杂度 \(O(D^2+D\log D\log M)\),其中 \(D=NA\)

代码:

//By: OIer rui_er
#include <bits/stdc++.h>
#define rep(x, y, z) for(int x = (y); x <= (z); ++x)
#define per(x, y, z) for(int x = (y); x >= (z); --x)
#define debug(format...) fprintf(stderr, format)
#define fileIO(s) do {freopen(s".in", "r", stdin); freopen(s".out", "w", stdout);} while(false)
#define endl '\n'
using namespace std;
typedef long long ll;namespace Polynomial {// 篇幅过长,多项式全家桶省略// 完整代码见 https://atcoder.jp/contests/abc436/submissions/71684486
}using namespace Polynomial;const int K = 105, M = 2e4 + 5;int n, a[K];
ll m;int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);initPoly(N);cin >> n >> m;rep(i, 1, n) cin >> a[i];Poly<mod, g> F(M);F[0] = 1;rep(i, 1, n) rep(j, a[i], M - 1) F[j] += F[j - a[i]];rep(j, 1, M - 1) F[j] += F[j - 1];if(m < M) cout << F[m] << endl;else {Poly<mod, g> A = berlekamp_massey(F);A.insert(A.begin(), 0);cout << bostan_mori(A, F, m, A.size()) << endl;}return 0;
}
http://www.jsqmd.com/news/97841/

相关文章:

  • 智能物联与流程引擎双轮驱动:yudao-cloud v2.4.2如何重塑企业数字化运营
  • FlutterFire远程配置用户细分:5分钟掌握精准用户分群技巧
  • R实现量子噪声通道模拟(从基础到高阶参数调优全指南)
  • 1、24 小时学会 GIMP:安装与使用指南
  • gLabels-Qt:解决标签设计痛点的终极跨平台方案
  • Typst数学排版终极指南:盒子对齐与括号匹配的实用技巧
  • 完整教程:React面试题及详细答案150道(01-10)
  • 快速掌握编程实战:开源项目学习终极指南
  • 2、开启GIMP图形编辑之旅
  • 如何用BIMP实现GIMP批量图像处理:完全免费的高效解决方案
  • 3、掌握GIMP基础工具,开启创意图形之旅
  • 4、深入探索GIMP:画笔、图案与选区的运用
  • 【量子信息科学前沿】:基于R的纠缠度量化方法与真实案例分析
  • 免费色彩生成工具:设计师必备的在线色彩助手
  • Windows 11界面大改造:ExplorerPatcher让你的系统重获新生
  • 5、图像变换与色彩处理全攻略
  • 简单三步掌握Ivy:AI框架统一终极解决方案
  • 从卖设备到卖“大脑“:AGV行业的利润正在向上游转移
  • 21、畅享数字视听:Linux系统的多媒体及外设应用指南
  • 18、Linux 图像导入与 PostScript 文件处理全攻略
  • 货架有限元分析的应用
  • 从软控股份“弃子“到IPO:一家物流集成商的逆袭
  • 游戏资源安全防护完整指南:从风险评估到系统化实施
  • spotDL音频格式终极指南:6种格式深度解析与最佳选择
  • 工业大电流测量老出问题?AT4V 新品专治 “不准、不稳、易损坏”
  • 不显示 cesium 控制台的打印输出
  • 21、Samba使用指南:备份与故障排除
  • Tsuru租户隔离架构深度解析:构建企业级安全PaaS平台
  • 托盘换层提升机保养手册
  • 2025年12月固化剂地坪研磨机,方形地坪研磨机,大型地坪研磨机厂家排行:稳定耐用品牌深度解析 - 品牌鉴赏师