题解 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,初二蒟蒻一枚,对题目不理解的话欢迎骚扰~~