欧美做的爱爱网站有哪些,深圳模板网站多少钱,wordpress 权限修改密码,工作简历模板是否有能到达的站点
无#xff0c;输出当前距离#xff08;最后一个到达站点距离满油箱状态下行走距离#xff09;有 有价格更低的站点 如果油量不足以到达新站点#xff0c;加刚好到达该站点的油量#xff08;只加可到达范围内最便宜的油#xff09;有价格更高的站点 在… 是否有能到达的站点
无输出当前距离最后一个到达站点距离满油箱状态下行走距离有 有价格更低的站点 如果油量不足以到达新站点加刚好到达该站点的油量只加可到达范围内最便宜的油有价格更高的站点 在当前油量基础上加满油箱
#includeiostream
#includealgorithm
using namespace std;
const int maxn 510;
const int INF 1000000000;
struct station{double price, dis;bool operator (station s1){//加油站点按照距离升序排序 return dis s1.dis;}
}s[maxn];
int main(){int n;double c, d, dAvg;cin c d dAvg n;for(int i 0; i n; i){cin s[i].price s[i].dis;}s[n].price 0;//记得加上终点价格设为0即可 s[n].dis d;sort(s, s n);//对所给站点按照距离从近到远排序 if(s[0].dis ! 0){//初始状态无油若没有距离为0的站点则不能出发 cout The maximum travel distance 0.00;}else{int cur 0, k;//cur当前站点 double minP, full c * dAvg, ans 0, have 0, need; //full满油箱状态下可走的距离ans开销have当前油量 while(cur n){//到达终点或不能继续时结束 k -1;//最低价格的站点编号 minP INF;//最低价格 for(int i cur 1; i n (s[i].dis - s[cur].dis) full; i){//找到能到达的站点并记录其中价格最低的当价格低于起始站中断 if(s[i].price minP){minP s[i].price;k i;if(minP s[cur].price) break;}} if(k -1) break;//当前站点加满油也到达不了任何站点 need (s[k].dis - s[cur].dis) / dAvg;//到达该优惠站点需要的汽油量 if(s[k].price s[cur].price){//出现价格比当前站点更便宜 if(have need){//当前油量不足以到达k站点 ans (need - have) * s[cur].price;have 0;}else have - need;//当前油量可以到达k站点 }else{//能到达但是价格高于当前站点 ans s[cur].price * (c - have);//加满注意可能当前还有一定油量 have c - need;}cur k;//更新当前站点 }if(cur ! n) printf(The maximum travel distance %.2f, s[cur].dis full);else printf(%.2f, ans);}return 0;
}