题解 P3984 【高兴的津津】

· · 题解

我要是说我这题3分钟码完代码一遍就过了,会不会有人打我。。无辜脸
咳咳,还是说题目吧
这题的思路真心很简单,因为题目保证输入数据递增,所以可以边读边做,O(n)的算法,具体在代码中解释
不说废话,直接上代码:

#include<cmath>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

int n,t,ans;//ans是答案,answer,显得我英语很好(划掉)
int a[200005];

int main(){
    scanf("%d%d",&n,&t);//读入不解释
    scanf("%d",&a[1]);//先读入第一个数据
    for(int i=2;i<=n;i++){//从第二个数开始读,并加上判断
        scanf("%d",&a[i]);
        if(a[i]-a[i-1]<t){//如果前一次与这次时间间隔不大于t天,加上相隔的时间
            ans+=a[i]-a[i-1];
        }
        else{//如果大于t天,因为快乐只能持续t天,所以答案加一
            ans+=t;
        }
    }
    printf("%d\n",ans+t);//因为最后一天的快乐肯定能持续t天,所以直接输出ans+t就好
    return 0;
}

读完题目,我好想跟津津一样也能虐爆全场就好了。。。
本人QQ:2124652975,初二蒟蒻一枚,对题目不理解的话欢迎骚扰~~