Codeforces Round #499 (Div. 1) C. Border (ecgcd)
发布日期:2021-05-08 15:20:57 浏览次数:21 分类:精选文章

本文共 335 字,大约阅读时间需要 1 分钟。

给定n个十进制整数和一个进制数k,我们需要计算这些整数的和在模k意义下的不同余数的数量。这些整数可以无限次使用。

首先,将每个十进制整数转换为模k后的余数r_i。这样,问题转化为计算这些余数在模k下的加法组合的可能结果的数量。

构造生成函数:每个余数r_i对应的生成函数是多项式中的项,形式为1 + x^{r_i} + x^{2r_i} + ... + x^{(k-1)r_i}。当r_i与k互质时,生成函数的次数为k。

将所有生成函数相乘,得到的多项式中的系数表示不同余数出现的次数。统计这些系数中的非零项数量,即可得到模k下的不同余数的数量。

特殊情况:当k=1时,所有余数均为0,因此只有一种结果。

通过上述方法,可以系统地计算出所有可能的和模k的不同余数的数量。

上一篇:POJ - 1651 Multiplication Puzzle(区间DP)
下一篇:Codeforces Beta Round #82 (Div. 2) C. Buns(多重背包)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年03月24日 23时34分13秒