文章

11

粉丝

410

获赞

9

访问

108.6k

头像
太难了,摸索了一下午算是折腾出答案来。(不完善)
P1347 浙江大学机试题
发布于2020年6月11日 17:26
阅读数 10.3k

先占个坑,后面有想法了再来改进。(对我而言,难点就在于,在当前的加油站点下,怎么查找,并判断剩下的站点,然后进行选择。   总体思路就是。分情况在油箱满能到达的范围,寻找,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...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发