文章
11
粉丝
410
获赞
19
访问
112.4k
先占个坑,后面有想法了再来改进。(对我而言,难点就在于,在当前的加油站点下,怎么查找,并判断剩下的站点,然后进行选择。 总体思路就是。分情况在油箱满能到达的范围,寻找,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...
登录后发布评论
暂无评论,来抢沙发