欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1738E(排列组合 + 整数乘法逆元)

2022-10-27 08:49 作者:Clayton_Zhou  | 我要投稿

AC代码

https://codeforces.com/contest/1738/submission/178038696

题意:

给定一个长度为n的整数序列a1,a2,…,an,您的任务是计算将其划分为几个非空连续子序列的方法的数目,

从而使子序列中的元素之和形成一个平衡序列。

如果s_i=s_{k-i+1},长度为k的序列s1,s2,…,sk称为平衡序列,1≤i≤k、 

例如,[1,2,3,2,1]和[1,3,3,1]是平衡的,但[1,5,15]不是平衡的。


题解:

排列组合 + 整数乘法逆元

 计算前缀和pre[i],如果mp[pre[n]-pre[i]] 非零,说明存在序列的后缀之和为pre[i]。

 整数序列没有0元素的话,使用简单的排列组合即可。

 如果整数序列 有0元素的话,使用下面题目给出的公式:

给定一个长度为n的整数序列a1,a2,…,an,总共有2^{n−1}个不同的划分方法。


CF竞赛题目讲解_CF1738E(排列组合 + 整数乘法逆元)的评论 (共 条)

分享到微博请遵守国家法律