求调*2
查看原帖
求调*2
633466
LiaoYF1楼主2022/7/6 18:03
#include<iostream>
using namespace std;
double d1,c,d2,a,max_d,ans=0;//a:剩余油量
double p[10],d[10];/*d:距离 p:油价*/
int n;
void move(int now){
    int minn=0,minx=600;
    for(int i=now+1;i<=n;i++){
        if(d[i]-d[now]>max_d){
            break;
        }
        if(p[i]<minx){
            minx=p[i];
            minn=i;
        }
    }
    if(p[now]<=minx&&(d1-d[now]<max_d)){
        ans+=(((d1-d[now])/d2)-a)*p[now];
        printf("%.2lf",ans);
        return;
    }
    if(minx==600){
        cout<<"No Solution";
        return;
    }
    if(minx>p[now]){
        ans+=(c-a)*p[now];
        a=c-(d[minn]-d[now])/d2;
    }else{
        ans+=((d[minn]-d[now])/d2-a)*p[now];
        a=0;
    }
    move(minn);
}
int main(){
    cin>>d1>>c>>d2>>p[0]>>n;
    d[0]=0;
    for(int i=1;i<=n;i++){
        cin>>d[i]>>p[i];
    }
    max_d=c*d2;
    for(int i=0;i<=n;i++){
        for(int j=i;j<=n;j++){
            if(d[j]<d[i]){
                swap(d[j],d[i]);
                swap(p[j],p[i]);
            }
        }
    }
    move(0);
    return 0;
}

WA on3,4,早上没人帮调,现在哪位能帮我调? 悬赏所有关注

2022/7/6 18:03
加载中...