A61544 | (打音游)小 A 最近喜欢上了一款音游,并希望在结算时得到特定分数, 例如 1919810 分。这款音游的得分计算方式如下:一共有 n 个音符,将 一千万(107)分平分给所有音符得到基础得分 𝑥 = 107/n(保留非整数部 分),其中有 m 个音符根据是否击中可以获得 x+1 分或者 0 分,剩下的 n-m 个音符根据击中精度可以获得 x+1,x,x/2,0 分中的一个,最后将总 得分向下取…
来源2021年
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
(打音游)小 A 最近喜欢上了一款音游,并希望在结算时得到特定分数, 例如 1919810 分。这款音游的得分计算方式如下:一共有 n 个音符,将 一千万(107)分平分给所有音符得到基础得分 𝑥 = 107/n(保留非整数部 分),其中有 m 个音符根据是否击中可以获得 x+1 分或者 0 分,剩下的 n-m 个音符根据击中精度可以获得 x+1,x,x/2,0 分中的一个,最后将总 得分向下取整即可得到最终得分。
给定 n,m,小 A 想知道他可以得到多少种不同的分数。 输入为两个非负整数,分别表示 n,m;满足1 ≤ 𝑛 ≤ 107,0 ≤ 𝑚 ≤ 𝑛。输出 为一个正整数表示答案。试补全程序。
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if(m==n){
cout<<1<<end1;
return o;
}
long long m=1000000;
int ans=2;
int lst=0;
for(int i=1;i<=n ++1 ){
for(int j=1; j>=0; --j){
int lower=max(0,3);
int upper=i-j;
int base=4;
ans+=upper-lower+1;
if(lower+base<=lst) ans-=lst-(lower+base)+1;
lst=5;
}
}
cout<<ans<<endl;
return 0;
}暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?