试题编号: 202112-1
试题名称: 序列查询
时间限制: 300ms
内存限制: 512.0MB

题目背景

西西艾弗岛的购物中心里店铺林立,商品琳琅满目。为了帮助游客根据自己的预算快速选择心仪的商品,IT 部门决定研发一套商品检索系统,支持对任意给定的预算 x,查询在该预算范围内(≤x)价格最高的商品。如果没有商品符合该预算要求,便向游客推荐可以免费领取的西西艾弗岛定制纪念品。

假设购物中心里有 n 件商品,价格从低到高依次为 A1,A2⋯An,则根据预算 x 检索商品的过程可以抽象为如下序列查询问题。

题目描述

A=[A0,A1,A2,⋯,An] 是一个由 n+1 个 [0,N) 范围内整数组成的序列,满足 0=A0<A1<A2<⋯<An<N。(这个定义中蕴含了 n 一定小于 N。)

基于序列 A,对于 [0,N) 范围内任意的整数 x,查询 f(x) 定义为:序列 A 中小于等于 x 的整数里最大的数的下标。具体来说有以下两种情况:

  1. 存在下标 0≤i<n 满足 Ai≤x<Ai+1

此时序列 A 中从 A0 到 Ai 均小于等于 x,其中最大的数为 Ai,其下标为 i,故 f(x)=i。

  1. An≤x

此时序列 A 中所有的数都小于等于 x,其中最大的数为 An,故 f(x)=n。

令 sum(A) 表示 f(0) 到 f(N−1) 的总和,即:
sum(A)=∑i=0N−1f(i)=f(0)+f(1)+f(2)+⋯+f(N−1)

对于给定的序列 A,试计算 sum(A)。

输入格式

从标准输入读入数据。

输入的第一行包含空格分隔的两个正整数 n 和 N。

输入的第二行包含 n 个用空格分隔的整数 A1,A2,⋯,An。

注意 A0 固定为 0,因此输入数据中不包括 A0。

输出格式

输出到标准输出。

仅输出一个整数,表示 sum(A) 的值。

样例1输入

3 10
2 5 8

Data

样例1输出

15

Data

样例1解释

A=[0,2,5,8]

i 0 1 2 3 4 5 6 7 8 9
f(i) 0 0 1 1 1 2 2 2 3 3

如上表所示,sum(A)=f(0)+f(1)+⋯+f(9)=15。

考虑到 f(0)=f(1)、f(2)=f(3)=f(4)、f(5)=f(6)=f(7) 以及 f(8)=f(9),亦可通过如下算式计算 sum(A):
sum(A)=f(0)×2+f(2)×3+f(5)×3+f(8)×2

样例2输入

9 10
1 2 3 4 5 6 7 8 9

Data

样例2输出

45

Data

子任务

50% 的测试数据满足 1≤n≤200 且 n<N≤1000;

全部的测试数据满足 1≤n≤200 且 n<N≤107。

提示

若存在区间 [i,j) 满足 f(i)=f(i+1)=⋯=f(j−1),使用乘法运算 f(i)×(j−i) 代替将 f(i) 到 f(j−1) 逐个相加,或可大幅提高算法效率。

#include<bits/stdc++.h>
#define N 1000005
using namespace std;int n,x;
int a[N];int main()
{int ans=0;cin>>n>>x;for(int i=1;i<=n;i++) {cin>>a[i];ans+=(i-1)*(a[i]-a[i-1]);}ans+=n*(x-a[n]);cout<<ans;
}

202112-1 序列查询 CCF认证真题相关推荐

  1. CCF历届真题之门禁系统(_1412_1_AccessControlSystem.java)

    CCF历届真题之门禁系统(_1412_1_AccessControlSystem.java) 问题描述: 试题编号: 201412-1 试题名称: 门禁系统 时间限制: 1.0s 内存限制: 256. ...

  2. Automation Anywhere A360 Certified Master RPA Professional Prep + Exam (A2019)认证真题和详细攻略

    1.先进入官网 2.进入AA学院 3.找到AA 2019 Mastter考试入口 合作公司的企业邮箱注册的账号是免费考试的,个人邮箱注册的要交100刀报名费.注意哦,考Master的前提是Advanc ...

  3. 三升序列(蓝桥杯真题)——python

    题目如下: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  4. CCF历年真题整理【已更新至202104】

    说明:本文持续更新,若长时间未更新,请评论催催我. 以下题目均来自cspro.org,点击进入测试页面,侵删歉. 部分题目我已经解决,并给出参考代码.然而有些我还没有尝试解决,但先把题目贴给大家,大家 ...

  5. oracle ocp认证真题,【每日一练】Oracle OCP认证考试题库解析052-1

    Explanation/Reference: 检查点进程: The checkpoint process (CKPT) updates the control file and data file h ...

  6. 阿里品牌数据品牌银行分析师认证真题资料库整理答案

    FAST指标中的F指标含义是什么? A.品牌当前有效的认知(15天)/兴趣(15天)/购买(2年半)/忠诚(1年)的消费者总数 B.高价值人群活跃度-会员活跃率 C.所有授权店铺的主动注册绑卡且满足商 ...

  7. 1-2 二十四点 (20 分)【Csp认证真题】

    定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行.其中加法用符号 + 表示,减法用符号 - 表示,乘 ...

  8. 202009-4 星际旅行【CCF-CSP认证真题】

    注意: (1)能一遍算完存下来的就要及时存储,节约时间. (2)尽可能简化判断条件. 满分代码 #include<bits/stdc++.h> using namespace std; i ...

  9. CCF认证历年真题 满分代码(更新至2018年12月)

    目标是集齐所有CCF认证试题的满分代码! 每次考试出题一般规律: 第一题:水题(稍微有些编程经验就可以写) 第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助) 第三题:大模拟(处理复杂的问 ...

最新文章

  1. Python reverse
  2. jetson nano 人脸
  3. Transaction中的SQL死锁
  4. QT在windows平台安装使用MInGW编译
  5. IntelliJ IDEA for Mac在MacOS模式下的导航快捷键(Navigation Shortcut)
  6. jquery动画 -- 1.加载指示器
  7. 产品运营:当你和上级发生争执你会怎么处理?
  8. Ubuntu Git安装与使用
  9. 产业区块链一周动态丨江西将出台区块链五年计划,数字货币试点引发A股躁动...
  10. 数据库底层原理-------数据结构
  11. 转换HTML内容为PDF格式
  12. python 线程thread详解
  13. 不可压库艾特流的压力修正法求解(附完整代码)
  14. Git 工作流的一些经验分享
  15. LS,MMSE,LMMSE,ML,MAP,LMS,AR,MSE误差介绍
  16. mysql导出数据到csv的方式
  17. 计算机网络模拟校园,计算机网络课程设计-模拟校园网组网实验.doc
  18. 如何把PPT转换成pdf格式的文件
  19. 重新安装CentOS7出现的问题及解决办法
  20. 平面设计和美工区别在哪

热门文章

  1. 如何正确使用git(以码云为例)
  2. indesign中如何锁定零点_InDesign有哪些奇技淫巧?
  3. wait和notify原理
  4. 第一篇综述-无人车简介(一)
  5. 如何用Java实现智能对话机器人
  6. Excel表格中汉字转拼音
  7. Jsp网上超市设计与实现(源代码+论文)
  8. 电感传感器循迹——智能小车
  9. Java面试常问问题
  10. 高通平台读写nv总结