1. 程式人生 > >2017-2018 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2017)(蒟蒻解題版)

2017-2018 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2017)(蒟蒻解題版)

http://codeforces.com/gym/101669/attachments
蒟蒻只討論四個題。(蒟蒻也覺得這樣不好,但是現在蒟蒻實力有限並且暫時沒有經歷更加深入的研究這種東西,等蒟蒻有時間了一定把部落格好好整整,)
G:給定一個質點,和各個不同運動階段的 加速度和加速度執行時間,問你如何設定各個時間段的前後順序,能夠使他走過的路程比初始時間段順序最多?
貪心,每次把加速度大的時間段放在前面(不考慮時間)
開始考慮使 a*t 貪心,但是考慮一個a特別小,但是t特別大的,對後面速度的影響,肯定使很小的(這個注意看V-T影象qwq)
假說:走過路程和初始最接近的,那就是a遞減唄。
這道題還有一個考點,那就是default, 作名詞動詞有 未履行的意思,在電腦科學中,有預設的意思(我能說我沒猜出來麼)

#include <bits/stdc++.h>
using namespace std;
vector<pair<double,double> >q;
bool cmp2(pair<double,double>a,pair<double,double>b){
       return a.first>b.first;
}
int main()
{   int m;
     double a,b;
    cin>>m;
    for(int i=0;i<m;i++){
          cin>>a>>b;
          q.push_back(make_pair(a,b));
    }
   // sort(q.begin(),q.end(),cmp2);
double v=0; double s=0; for(int i=0;i<q.size();i++){ s+=v*q[i].second+0.5*q[i].first*q[i].second*q[i].second; v=v+q[i].first*q[i].second; } v=0; double ss=0; v=0; sort(q.begin(),q.end(),cmp2); for(int i=0;i<q.size();i++){ ss+=v*q[i].second+0.5
*q[i].first*q[i].second*q[i].second; v=v+q[i].first*q[i].second; } printf("%.1lf\n",abs(ss-s)); return 0; }

其他三道題都口頭ac好幾天了。馬上更。