zoukankan      html  css  js  c++  java
  • Codeforces Round #298 (Div. 2) B. Covered Path

    题目大意:

    一辆车,每秒内的速度恒定...第I秒到第I+1秒的速度变化不超过D。初始速度为V1,末速度为V2,经过时间t,问最远能走多远。

    分析

    开始的时候想麻烦了。讨论了各种情况。后来发现每个时刻的最大值都满足一定的约束关系。设此时为时刻i,上一次的速度为p,那么本次的速度应为max(p+d,v2+(t-i)*d),因为要保证最终一定能够返回到v2。这样以来便可以得到每个时刻的最大值,然后累加求和即可。

     1 #include<cstdio>
     2 #include<iostream>
     3 using namespace std;
     4 int main()
     5 {
     6     int v1,v2,t,d;
     7     int a[10000];
     8     while(scanf("%d %d",&v1,&v2)!=EOF)
     9     {
    10         scanf("%d %d",&t,&d);
    11         a[0]=v1;
    12         int k=0,tem=v1;
    13         for(int i=2;i<=t;i++)
    14         {
    15             tem=min(tem+d,v2+(t-i)*d);
    16             a[++k]=tem;
    17         }
    18         int sum=0;
    19         for(int i=0;i<=k;i++)
    20             sum+=a[i];
    21         printf("%d
    ",sum);
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    删除旧版vue-cli
    vue.extend和vue.component的区别
    vue-loader处理vue文件
    CentOS7安装iptables防火墙
    java类的初始化顺序
    java的接口和抽象类的理解
    js中的in操作符
    js中call和apply函数
    js的类型转换
    闭包作用
  • 原文地址:https://www.cnblogs.com/tsw123/p/4428981.html
Copyright © 2011-2022 走看看