1. 程式人生 > >[ 10.03 ]CF每日一題系列—— 534B貪心

[ 10.03 ]CF每日一題系列—— 534B貪心

brush min solution 距離 bsp sharp iostream 加速 i++

Descripe:
  貪心,貪在哪裏呢……

  給你初始速度,結尾速度,行駛秒數,每秒速度可變化的範圍,問你行駛秒數內最遠可以行駛多少距離

Solution:
  貪心,我是否加速,就是看剩下的時間能不能減到原始給定的結尾速度

#include <iostream>

using namespace std;

int main()
{
    int v1,v2;
    int t,d;
    while(cin>>v1>>v2)
    {
        cin>>t>>d;
        int ret = v1 + v2;
        for(int i = 2;i < t;i++)
        {
            //找峰值 v1加速的最大 和 v剩下時間v2能允許加到的最大 中的最小值貪心一下
            ret += min(v1 + (i-1) * d,v2 + (t-i) * d);
        }
        printf("%d\n",ret);
    }
    return 0;
}



//#include <iostream>
//
//using namespace std;
//
//int main()
//{
//    int v1,v2;
//    int t,d;
//    while(cin>>v1>>v2)
//    {
//        cin>>t>>d;
//        int ret = v1 + v2;
//        int upt = 0;
//        int ext = t - 2;
//        while(ext)
//        {
//            if(v1 + d > v2 + ext * d)
//            {
//                v1 = v2 + ext * d;
//                ext--;
//                ret += v1;
//                break;
//            }
//            else
//            {
//                v1 += d;
//            }
//            ext--;
//            //cout<<v1<<endl;
//            ret += v1;
//        }
//        while(ext--)
//        {
//            v1 -= d;
//            ret += v1;
//        }
//        printf("%d\n",ret);
//    }
//    return 0;
//}

[ 10.03 ]CF每日一題系列—— 534B貪心