题意:已知一辆车在t1时刻的速度v1,在t2时刻的速度v2,t2-t1==t。每秒车速改变范围在[-d,d]内。问,在t时间内,车子最多经过了多少的距离s?
思路:一开始我就想,这tm明显是道物理的v-t图像求面积最值的题,然后分类讨论v1,v2的大小关系去决定面积计算方式。结果发现v最大值好像没法确定。 毫无思路,看了题解,感觉有点奇怪。
题解的意思是:我去求每一秒的最大值,然后累加就是最大的路程。我感觉… 还是没法理解,因为每一秒的最大值是被前一秒和后一秒所约束的。感觉这样做怪怪的。 比如题目给的数据test1 :
5 6
4 2 计算过程是5→7 6→8 7→9 8→10 ans=5+6+7+8
#include <bits/stdc++.h>
int v1,v2,t,d,ans;
int main(void)
{
scanf("%d%d%d%d",&v1,&v2,&t,&d);
while(t--)
{
if(v1<=v2)
ans+=v1,v1+=d;
else
ans+=v2,v2+=d;
}
printf("%d",ans);
}