乘车
来源:互联网 发布:招人软件 编辑:程序博客网 时间:2024/04/29 04:14
【题目描述】
周末,小华和妈妈一道去乡下的外婆家,有路公交车正好直达,他们打算乘公交车到外婆家。细心的小华发现公交车一共要经过 n+1 个站点,起点是 0 号站点,终点站是 n,并且每个站点的距离不一样,所以每一站的乘车费用也不尽相同。
现在小华在思考一个问题:从起点站开始到 n 号站点陆陆续续共有 m 个人乘车,已知这m 个人乘车区间,以及相邻两站(i-1 站到 i 站)的乘车费用,那么在这一趟单程车次中,售票员一共卖出多少票额的车票。一个人乘车费用是他在乘车区间各站费用之和。
【输入格式】
第一行,一个空格隔开的两个正整数 n 和 m。
第二行,有 n 个正整数,各数之间用一个空格隔开,第 i 个数表示站点 i-1 到站点 i 之间的乘车费用(费用 100 以内正整数)。
接下来,有 m 行,每一行两个整数,描述了 m 个人乘车区间站点信息(上车和下车的站点)。
【输出格式】
总共卖出的票额。
【样例输入】
5 3
2 3 2 4 3
0 2
3 5
1 4
【样例输出】
21
【数据范围】
【分析】
用前缀和累加第0站到第i站的票额之和,然后边读入边统计即可,当然用差分也可以。
//前缀和#include<bits/stdc++.h>using namespace std;int a[100005],b[100005]={0};int n,m;int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) scanf("%d",&a[i]),b[i]=b[i-1]+a[i]; long long ans=0; for (int i=1;i<=m;i++){ int x,y; scanf("%d%d",&x,&y); ans+=b[y]-b[x]; } printf("%lld",ans);}-----------------------------------//差分#include<bits/stdc++.h>using namespace std;int a[100005],b[100005]={0};int n,m;int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=m;i++){ int x,y; scanf("%d%d",&x,&y); b[x+1]++,b[y+1]--; } for (int i=1;i<=n;i++) b[i]=b[i]+b[i-1]; long long ans=0; for (int i=1;i<=n;i++) ans+=a[i]*b[i]; printf("%lld",ans);}
阅读全文
1 1
- 乘车
- 乘车
- 乘车
- 最优乘车
- 最优乘车
- 最优乘车
- 最优乘车
- 高速乘车
- 公路乘车
- 乘车路线
- 公路乘车
- 乘车线路查询
- 乘车路线查询
- 林华郭莉婚礼乘车路线!
- 乘车路线查询
- 【图论】【RQNOJ】最优乘车
- Tyvj 1015 公路乘车
- 1065 最优乘车
- nginx之——简单介绍安装启动(一)
- keras&tensorflow+分布式训练︱实现简易视频内容问答框架
- 浅谈Fragment
- 面向对象---基于组合的继承:属性的继承基于伪装的方式实现,而方法的继承基于原型链的方式继承。
- 创建JInternalFrame窗口
- 乘车
- python opencv入门(学习笔记no.2)-视频的读入读出
- 和为S的连续正数序列
- 北方大学 ACM 多校训练赛 第十五场 蜘蛛牌A
- 百度Ueditor 图片上传路径配置
- Python 装饰器装饰类中的方法
- 她使用过数千款的App,关于产品开发听听她的看法
- RecyclerView的简单使用
- jquery+jsp+servlet+ajax实现注册功能,ajax校验用户名、验证码等