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}个不同的划分方法。