苹果消消乐
100 个苹果和香蕉排成一条直线,其中有 N 个香蕉,你可以使用至多 M 次魔法道
具将香蕉变成苹果,最后“最长的连续苹果数量”即为你本次苹果消消乐的得分,给定
苹果和香蕉的排列,求你能获得的最大得分。
输入
第一行是一个整数 T(1 <= T <= 10)T(1<=T<=10),代表测试数据的组数。 每个测试数据第一行是 2 个整数 N和 M(0 <= N, M <= 100)。第二行包含 N个整数a1, a2, ..., a_N(1 <= a1 < a2 < ... < aN <= 100),表示第a1,a2, ... ,aN 个位置上摆放的是香蕉。
输出
对于每组数据,输出通过使用魔法道具后你能获得的最大得分。
样例输入
3
5 1
34 77 82 83 84
5 2
10 30 55 56 90
5 10
10 30 55 56 90
样例输出
76
59
100
方法:简单枚举轻松解决,看代码
不准直接抄!!!
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;//存一共有多少组数据
cin >> t;
while (t--)
{
int n, m, line = 100, ans;//题目上有,line是长度,ans是答案
cin >> n >> m;
int mp[n + 1];//数组往大开是个很好的习惯
for (int i = 1; i <= n; i++)
cin >> mp[i];
if (m >= n)
{
cout << "100" << endl;
continue;
}
mp[0] = 0;
mp[n + 1] = line + 1;
int r = m;
line = 1;//长度变成1
while (r <= n)//控制m<=n
{
ans = max(ans, mp[r + 1] - mp[line - 1] + 1 - 2);//用max函数来找最大的
line++;
r++;
}
cout << ans << endl;
}
return 0;
}
看完了对你有帮助的话,用你们发财的小手给作者点个赞,关注一下吧!