首页 > 其他 > 详细

9.1练习题6 高兴的津津 题解

时间:2019-09-07 21:45:42      阅读:93      评论:0      收藏:0      [点我收藏+]

题目出处:洛谷 P3984

题目描述

津津上高中了。她在自己的妈妈的魔鬼训练下,成为了一个神犇,每次参加一次OI比赛必拿Au虐全场。每次她拿到一个Au后就很高兴。假设津津不会因为其它事高兴,并且她的高兴会持续T天(包包含获奖当天。就算在高兴的时候再次拿到Au,他的高兴也只能维持包括这次拿奖之日起T天,而不是额外增加T天的高兴时间,除非之后再拿奖)。请你帮忙检查一下津津接下来的的日程安排,要参加N场比赛,看看接下来的几天,津津会累计开心多久?
说明:
1<=N<=200000
1<=T,t_i<=10^9,t_i单调递增。

输入格式

第一行两个整数N和T。
接下来一行,N个单调递增整数t_i,表示她在第t_i天的时候拿了一个Au。

输出格式

一个整数表示,津津累计开心多久。

样例输入

3 5
1 2 10

样例输出

11

题目分析

因为 \(t[i]\) 是按照升序排列的,所以我们只需要遍历每一个元素 \(t[i]\) ,如果 \(t[i+1] - t[i] < T\) ,则答案加上 \(t[i+1] - t[i]\) ;否则答案加上 \(T\)
实现代码如下:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 200020;
int n, T, t[maxn];
long long ans;
int main() {
    cin >> n >> T;
    for (int i = 0; i < n; i ++) cin >> t[i];
    for (int i = 1; i < n; i ++) {
        if (t[i] < t[i-1] + T) ans += t[i] - t[i-1];
        else ans += T;
    }
    ans += T;
    cout << ans << endl;
    return 0;
}

9.1练习题6 高兴的津津 题解

原文:https://www.cnblogs.com/zifeiynoip/p/11483018.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!