202112-1 序列查询 CCF认证真题
试题编号: | 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 的整数里最大的数的下标。具体来说有以下两种情况:
- 存在下标 0≤i<n 满足 Ai≤x<Ai+1
此时序列 A 中从 A0 到 Ai 均小于等于 x,其中最大的数为 Ai,其下标为 i,故 f(x)=i。
- 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认证真题相关推荐
- CCF历届真题之门禁系统(_1412_1_AccessControlSystem.java)
CCF历届真题之门禁系统(_1412_1_AccessControlSystem.java) 问题描述: 试题编号: 201412-1 试题名称: 门禁系统 时间限制: 1.0s 内存限制: 256. ...
- Automation Anywhere A360 Certified Master RPA Professional Prep + Exam (A2019)认证真题和详细攻略
1.先进入官网 2.进入AA学院 3.找到AA 2019 Mastter考试入口 合作公司的企业邮箱注册的账号是免费考试的,个人邮箱注册的要交100刀报名费.注意哦,考Master的前提是Advanc ...
- 三升序列(蓝桥杯真题)——python
题目如下: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...
- CCF历年真题整理【已更新至202104】
说明:本文持续更新,若长时间未更新,请评论催催我. 以下题目均来自cspro.org,点击进入测试页面,侵删歉. 部分题目我已经解决,并给出参考代码.然而有些我还没有尝试解决,但先把题目贴给大家,大家 ...
- oracle ocp认证真题,【每日一练】Oracle OCP认证考试题库解析052-1
Explanation/Reference: 检查点进程: The checkpoint process (CKPT) updates the control file and data file h ...
- 阿里品牌数据品牌银行分析师认证真题资料库整理答案
FAST指标中的F指标含义是什么? A.品牌当前有效的认知(15天)/兴趣(15天)/购买(2年半)/忠诚(1年)的消费者总数 B.高价值人群活跃度-会员活跃率 C.所有授权店铺的主动注册绑卡且满足商 ...
- 1-2 二十四点 (20 分)【Csp认证真题】
定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行.其中加法用符号 + 表示,减法用符号 - 表示,乘 ...
- 202009-4 星际旅行【CCF-CSP认证真题】
注意: (1)能一遍算完存下来的就要及时存储,节约时间. (2)尽可能简化判断条件. 满分代码 #include<bits/stdc++.h> using namespace std; i ...
- CCF认证历年真题 满分代码(更新至2018年12月)
目标是集齐所有CCF认证试题的满分代码! 每次考试出题一般规律: 第一题:水题(稍微有些编程经验就可以写) 第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助) 第三题:大模拟(处理复杂的问 ...
最新文章
- Python reverse
- jetson nano 人脸
- Transaction中的SQL死锁
- QT在windows平台安装使用MInGW编译
- IntelliJ IDEA for Mac在MacOS模式下的导航快捷键(Navigation Shortcut)
- jquery动画 -- 1.加载指示器
- 产品运营:当你和上级发生争执你会怎么处理?
- Ubuntu Git安装与使用
- 产业区块链一周动态丨江西将出台区块链五年计划,数字货币试点引发A股躁动...
- 数据库底层原理-------数据结构
- 转换HTML内容为PDF格式
- python 线程thread详解
- 不可压库艾特流的压力修正法求解(附完整代码)
- Git 工作流的一些经验分享
- LS,MMSE,LMMSE,ML,MAP,LMS,AR,MSE误差介绍
- mysql导出数据到csv的方式
- 计算机网络模拟校园,计算机网络课程设计-模拟校园网组网实验.doc
- 如何把PPT转换成pdf格式的文件
- 重新安装CentOS7出现的问题及解决办法
- 平面设计和美工区别在哪