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

[ARC212C] ABS Ball题解

题解

1.题目

\(N\) 个白球。首先,你需要将每个球涂成红色或蓝色。

然后,你将这 \(N\) 个已被涂成红色或蓝色的球放入 \(M\) 个可区分的盒子之中。

\(a_i\)\(b_i\) 分别表示第 \(i\) 个盒子中红球和蓝球的数量。

请你求出所有放球方式中\(\prod\limits_{1 \leq i \leq M} |a_i - b_i|\)的和,对 \(998244353\) 取模。

2.思路

首先我们可以从配对出发
因为题目是\(\prod\limits_{1 \leq i \leq M} |a_i - b_i|\)
可以看成是每个箱子已经配对了\(\min \{a_i,b_i\}\)对小球后再在剩下的小球中选出一个小球的方案数

这就十分的方便了,先考虑配对的方案数
可以先枚举有 \(k\) 个配对
那么要将 \(k\) 个配对分配到 \(m\) 个箱子中(注意配对数可以为空,只是球数不能为空),
所以用隔板法:\(C_{k+m-1}^{m-1}\)

接下来,讨论每个箱子中剩下的球
首先,剩下的球有可能是蓝色或者红色
所以每个箱子都有可能出现两种剩余情况
所以这里有 \(2^m\) 种方案
然后,讨论要从每个箱子中选出一个球
这里是最难理解的
首先,我们需要把剩下的 \(n-2k\) 个球分配到 \(m\) 个箱子中(不能有空箱子)
再然后,我们需要在每个箱子中选出一个球
可以看作在每个箱子内又有一个隔板(这个隔板在球上,代表选了这个球)
所以总结一下:

  • 可插的隔板位置数:\(n-2k-1+m\) (分配小球的隔板数+箱子内那个选球的隔板数)
  • 要插的隔板数: \(m-1+m\) (分配小球的隔板数+箱子内那个选球的隔板数)
    于是便推出了这部分的式子 \(C_{n-2k-1+m}^{2m-1}\)

综上,根据乘法原理,答案为 \(\Sigma_{k=0}^{\frac{n+m-1}{2}} {2^m C_{k+m-1}^{m-1} C_{n-2k-1+m}^{2m-1}}\)

3.Code

#include<bits/stdc++.h>
#define int long long
const int mod=998244353;
using namespace std;
int n,m,siz[30000010],fac[30000010],inv[30000010];
int qpow(int a,int b){int res=1;while(b){if(b&1)res=res*a%mod;b>>=1;a=a*a%mod;}//cout<<res<<endl;return res;
}
void pre(int N){fac[0]=inv[0]=1;for(int i=1;i<=N;i++)fac[i]=i*fac[i-1]%mod;inv[N]=qpow(fac[N],mod-2);for(int i=N-1;i>=1;i--)inv[i]=(i+1)*inv[i+1]%mod;
}int ans=0;
int C(int n,int m){if(n<0 or m<0 or n-m<0)return 0;return fac[n]*inv[n-m]%mod*inv[m]%mod;
}main(){cin>>n>>m;pre(30000000);for(int i=0;2*i<=n+m-1;i++){ans+=C(i+m-1,m-1)*C(n+m-1-2*i,2*m-1)%mod*qpow(2ll,m)%mod;ans%=mod;}cout<<ans;return 0;
}
http://www.jsqmd.com/news/414924/

相关文章:

  • 2026年评价高的热水器维修公司推荐:万家乐壁挂炉官方维修/万家乐热水器官方维修/八喜热水器官方维修/选择指南 - 优质品牌商家
  • Xilinx SDK 2019.1 使用 JTAG 将 10MB 文件 复制到 ZYNQ 的 DDR中 大约 2秒
  • 2026年VPSA制氧机与PSA制氧设备厂家推荐:工业大型制氧装置专业供应商精选 - 品牌推荐官
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Account Kit
  • 2026年重庆镀锌钢管厂家哪家强? 靠谱耐用 适配不同规模需求 - 深度智识库
  • 开发程序员转行至AI大模型领域的详细攻略,从程序员到AI大模型专家:一份详尽的转行攻略与学习资源
  • 2026年烟囱塔/角钢塔/监控塔/雷达塔/电力塔厂家推荐:衡水盛众钢结构专注多场景铁塔供应 - 品牌推荐官
  • Python 包定义中的聚合导出;FunASR使用同时运用vad(语音活动检测)+punc(标点恢复)+spk(说话人分割)模型
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Ads Kit
  • 2026年2月电加热蒸汽发生器厂家推荐,精准控温与持续稳定输出测评 - 品牌鉴赏师
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Core File Kit
  • 2026年污水处理臭氧发生器厂家最新推荐:自来水臭氧发生器、食品厂臭氧发生器、食品厂臭氧机、养殖场臭氧发生器选择指南 - 优质品牌商家
  • 【笔记】集合幂级数 3:逐点牛顿迭代法
  • 2026年工业废水臭氧发生器公司权威推荐:冻库臭氧机/实验室臭氧发生器/工业废水臭氧机/水果臭氧发生器/选择指南 - 优质品牌商家
  • 2026年老榆木护墙板地板厂家实力推荐:郓城县匠造木作老榆木家具厂,全系老榆木板材/风化板/柱子/大梁定制供应 - 品牌推荐官
  • 闲置京东e卡别浪费!三种实用京东e卡回收方法,轻松变现不踩坑 - 京回收小程序
  • 十大开料机品牌怎么选?全屋定制开料机品牌干货指南 - 星辉数控
  • 珠三角GEO优化服务商哪家最专业 - 品牌推荐大师1
  • 2026年全站仪综合服务推荐:南京环球测绘仪器,租赁/检定/维修/回收一站式解决方案 - 品牌推荐官
  • 基于springboot 实验室设备管理系统(源码+数据库+文档)
  • 2026年2月流体粘滞阻尼器厂家推荐,源头直供性价比之选 - 品牌鉴赏师
  • 施耐德平台商品详情API接口技术指南
  • 牛客链接
  • 腾讯云代理商:腾讯云国际站 搭建网站的明智之选还是隐藏陷阱?
  • 基于BFS的2525迷宫最短路径MATLAB实现
  • 点量云流管理平台使用教程——服务器管理用户管理
  • Nordic nRF54L15 蓝牙 6.0 BLE 赋能全场景 IoT 连接
  • 2026年军用无人机集群软硬一体化供应商推荐,猎翼无人机引领实战化变革 - 品牌2025
  • 揭秘LLM千亿级推理:分布式架构与核心优化机制全解析
  • 如何通俗地理解RAG?RAG大模型必备:如何让你的AI产品更懂你?揭秘RAG原理与实战技巧!