CCF-CSP 202112-1 序列查询

 

 该题题意较长,需要好好理解题意再动手,关键在于sum(A)的计算,实际上,该题的提示已经明确了该题的解题思路

以样例1为例:sum(A)=0*(A[1]-A[0])+1*(A[2]-A[1])+2*(A[3]-A[2])+3*(A[4]-A[3])

这里的A[i]-A[i-1]代表了f值相同的数有多少个,0,1,2,3则代表了对应分段的f值是多少,这里你可以发现上面我多写了一个A[4],这里将A[4]赋值为N即可,因为操作是一样的

这里的0,1,2,3可以使用一个变量进行++,但是实际上,仔细观察不难发现实际上f值就是对应了A数组的下标

#include<iostream>

using namespace std;

int n,m;
int A[205];

int main(){
	int ans=0;
	cin>>n>>m;
	A[n + 1] = m;
	for(int i=1;i<=n;i++){
		cin>>A[i];
	}
	for (int i = 1; i <= n + 1; i++) {
		ans += ((A[i] - A[i - 1]) * (i - 1));
	}
	cout<<ans<<endl;
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZZWWWFFF_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值