2. 小 A 最近喜欢上了一款音游,并希望在结算时得到特定分数,例如 $1919810$ 分。这款音游的得分计算方式如下:一共有 $n$ 个音符,将一千万($10^7$)分平分给所有音符得到基础得分 $x=\dfrac{10^7}{n}$(保留非整数部分),其中有 $m$ 个音符根据是否击中可以获得 $x+1$ 分或者 $0$ 分,剩下的 $n-m$ 个音符根据击中精度可以获得 $x+1$,$x$,$\dfrac{x}{2}$,$0$ 分中的一个,最后将总得分向下取整即可得到最终得分。
给定 $n,m$,小 A 想知道他可以得到多少种不同的分数。
输入为两个非负整数,分别表示 $n,m$;满足,$1 \leq n \leq 10^7,0 \leq m \leq n$。输出为一个正整数表示答案。试补全程序。
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if(m==n) {
cout<<①<<endl;
return 0;
}
long long M=10000000;
int ans=②;
int lst=0;
for(int i=1;i<=n;++i) {
for(int j=1;j>=0;--j) {
int lower=max(0,③);
int upper=i-j;
int base=④;
ans+=upper-lower+1;
if(lower+base<=lst) ans-=lst-(lower+base)+1;
lst=⑤;
}
}
cout<<ans<<endl;
return 0;
}1) ① 处应填( )。 A. `
(本题为阅读程序 / 完善程序,完整题目与测试数据见平台)
本题考查基础知识的理解与应用,需要结合所学概念进行分析和判断。
注意审题,看清题目要求是选择"正确的"还是"不正确的"。逐一分析每个选项,排除明显错误的选项。
核心概念:本题涉及计算机科学基础知识,需要准确理解相关概念的定义和应用场景。
推导分析:逐一检查每个选项是否符合题目的条件和要求;对于不确定的选项,可以尝试举反例验证;结合排除法缩小选择范围。
避坑指南:注意否定词如"不正确的是""不属于";注意限定词如"一定""可能""必须"等绝对化表述往往是陷阱。
解题技巧:先排除明显错误的选项,在剩余选项中仔细比较。对于计算题,列出公式仔细计算。