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 ",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 ",ret); // } // return 0; //}