文章
11
粉丝
410
获赞
9
访问
108.6k
先占个坑,后面有想法了再来改进。(对我而言,难点就在于,在当前的加油站点下,怎么查找,并判断剩下的站点,然后进行选择。 总体思路就是。分情况在油箱满能到达的范围,寻找,1,在第一次找到比当前油价抵得时候,跳出,去到此点,更新当前站点指针, 2,没有比当前低,则找寻相对最低的。后面就是循环,
之前曾陷入误区,认为起始点加油站和后面不一样,其实是是一样的。举个例子,假设,我从起点1号加油站出发,在油箱满油范围内找不到比当前更低油价加油站,则需要加满油,那么到达2号站点后,虽然有油。则不足以到达剩下任一站点。因为如果能得话。2号站点就不是当前的所在2号了。这个是关键。 这样就解决了。后面只有更新油箱和油费即可,同时记录行驶里程。)
这是我的笔记
https://blog.csdn.net/weixin_43298629/article/details/106693925
#include<bits/stdc++.h>
using namespace std;
typedef struct node{
int Di;//距离
double pi;//单价
}node;
node p[100];
bool cmp(node a,node b)
{
return a.Di<b.Di;
}
int main()
{
int C,D,N;//C油箱,D总距离,Dv每升油距离,N个数
double Dv;
while(cin>>C>>D>>Dv>>N)
{ p[N].pi=0;
p[N].Di=D;
double you=0.0,mon=0.0;
for(int i=0;i<N;i++)
{
cin>>p[i].pi>>p[i].Di;
}
sort(p,p+N+1,cmp);
int...
登录后发布评论
暂无评论,来抢沙发