题干
想法
序列A是递增的,f(x)中的x也是递增的,对于任意整数与
,如果
,则任意整数
,满足,
针对上述特性,采用对序列A的一次倒序遍历即可完成操作。
题解
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,N;
cin>>n>>N;
int *array=(int*)malloc(n*sizeof(int));
int i;
array[0]=0;
for(i=1;i<=n;++i)
{
cin>>array[i];
}
//A ascend->倒序遍历,找到最大满足的
int j=N-1;
int sum=0;
i=n;
while(j>0)
{
if(array[i]<=j)
{
--j;
sum+=i;
}
else
{
--i;
}
}
cout<<sum;
}
我在想什么
昨天和朋友说,今天一定学算法,狠了下心,买了个课,虽然今天没听课,虽然真的是贼拉简单的题,虽然我也上过算法的课(培养计划的要求),但是好开心芜湖!!
会慢慢好起来的,之后肯定会有想不明白做不出来wannan give up的时间。但是,不积跬步无以至千里。
A good start is half done.
一定要坚持下去。
那就让我康康,一天天下去会变成怎样。
第一篇创作,属实灌水巨作哩。XD