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

[题解] P13777 「o.OI R2」Meowalkane

题意:求正 \(n\) 烷理论上有多少种 \(k\) 氯代物
数据范围\(1\le t\le 10\)\(1\le n\le 10^6\)\(\sum n\le 10^6\)\(1\le k\le 2n+2\)

\(本质不同的方案数=\frac{总方案数+强制对称的方案数}{2}\), 总方案数中不对称的算了两次,需要除去,但是对称的只算了一次,所以要补上。求总方案可以枚举 \(A_1\)\(A_n\) 的值,中间部分是经典的容斥。钦定 \(x\)\(A_i \ge 3\),用剩下的 \(k-A_1-A_n-3x\) 个氯插板法即可,容斥系数为 \((-1)^x\)。强制对称的答案类似,只需要计算一半长度即可,需要根据 \(n\)\(k\) 的奇偶性讨论。

复习
方程 \(x_1+x_2+...+x_n=k (x > 0, x\in \Z)\) 的解数 = \(\tbinom{k-1}{n-1}\)

方程 \(x_1+x_2+...+x_n=k (x \ge 0, x\in \Z)\) 的解数 = \(\tbinom{n+k-1}{n-1}\)

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N=3e6+5,P=998244353,inv2=499122177;
int T,n,k,fac[N],inv[N];
int C(int n,int m){if(!m)return 1;if(n<m)return 0;return fac[n]*inv[n-m]%P*inv[m]%P;
}
int calc(int x,int y){if(y<0)return 0;if(!x)return !y;int res=0;for(int i=0;i<=min(x,y/3);i++){if(i&1)res=(res-C(y-3*i+x-1,x-1)*C(x,i)%P+P)%P;else res=(res+C(y-3*i+x-1,x-1)*C(x,i)%P)%P;}return res;
}
#undef int 
int main(){
#define int long long ios::sync_with_stdio(0),cin.tie(0);fac[0]=fac[1]=inv[0]=inv[1]=1;for(int i=2;i<N;i++)fac[i]=fac[i-1]*i%P,inv[i]=(P-P/i)*inv[P%i]%P;for(int i=2;i<N;i++)inv[i]=inv[i-1]*inv[i]%P;for(cin>>T;T;T--){cin>>n>>k;if(n==1){cout<<1<<'\n';continue;}int ans=0;for(int i=0;i<=3;i++)for(int j=0;j<=3;j++)ans=(ans+calc(n-2,k-i-j))%P;if(n&1){for(int i=0;i<=3;i++){for(int j=0;j<=2;j++){if(!((k+j)&1))ans=(ans+calc(n/2-1,(k-j)/2-i))%P;}}}else {for(int i=0;i<=3;i++){if(!((k+2*i)&1))ans=(ans+calc(n/2-1,(k-2*i)/2))%P;}}cout<<ans*inv2%P<<'\n';}return 0;
}
http://www.wxhsa.cn/company.asp?id=1076

相关文章:

  • Kubernetes Pod控制器
  • kingbase金仓数据库的用户权限管理
  • C++14之exchange
  • Blazor之第三方登录
  • 深入解析:物联网时序数据库IoTDB是什么?
  • wpf 后台获取资源字典对象
  • POJ 3601 Subsequence
  • 【IEEE出版】第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)
  • Python-httpx库的post请求的几种参数的区别
  • 精准把控人力,PJMan “负荷分析” 助力项目高效推进
  • 92. 递归实现指数型枚举
  • Logstash、Filebeat和Fluent比较
  • 车载电动充气泵芯片方案设计
  • [题解]P4281 [AHOI2008] 紧急集合 / 聚会
  • 【API接口】最新可用红果短剧接口
  • 微信个人号接口
  • 数据结构与算法-28.图
  • 剪映如何将草稿分享给别人?
  • 测试开发私教服务班4.0:大厂导师1对1带你突破职业瓶颈!
  • 深入理解Java对象:从创建到内存访问的JVM底层机制
  • 【AP出版】第八届人文教育与社会科学国际学术会议(ICHESS 2025)
  • 从零开始搭建Qwen智能体:新手也能轻松上手指南
  • # 简单贪心题(greedy)
  • 免安装在线录屏神器推荐:纯前端屏幕录制工具使用指南
  • sqlalchemy连接池的长连接一直占用,无法释放导致服务卡住
  • 锁相关记录
  • 加入任务计划
  • 使用yolo算法对视频进行实时目标跟踪和分割
  • qoj2607 Survey
  • ubuntu24修改网络ip