题库首页 › 青少年软件编程(C语言) › 题目 11345

红蓝串 小红有两条珠串,一条有 A 只红色珠子,另一条有 B 只蓝色珠子。她想用下列步骤做一条红蓝珠子的串: - 她会从两条珠串上一步一步地取下珠子。 - 第 i 步时,她会从一条珠串上取下 i 颗珠子,穿到结果串上。 - 她最后要得到一条有 n 颗珠子的串。 小红有可能得到多少种不同的结果呢? 如果小红在至少某一步中选择了不同颜色的串来取珠子,那么两条结果串就被认为是不同的。 时间限制:6000 内存限制:262144 输入 输入在一行中给出 3 个整数:n (0 < n ≤ 2 × 105)、A、B (0≤ A, B ≤ 105),其定义如题面所述。 输出 在一行中输出小红有可能得到多少条有 n 颗珠子的串。因为结果可能是很大的数字,所以你要输出对 1000000007 (109 + 7) 取模后的结果。 样例输入 10 4 7 样例输出 4 提示 小红能得到的 4 种不同的结果如下图所示。

红蓝串 小红有两条珠串,一条有 A 只红色珠子,另一条有 B 题目配图

正确答案:第i步取i颗,总步数T使1+..+T>=n(最后一步可不足)。枚举每步选红/蓝,使红珠总数恰为某值,DP计数红和为各可能值的方案数,再乘组合。n<=2e5用组合数预处理

试卷来源:202409 青少年等级考试C/C++真题四级

本卷相关题目

在线做题 同科目题库