PAT A1018(附注释)

需要注意的点:

①输入时直接将输入的每个地点的车辆数减去完美状况下的车辆数,结果可视为与完美状况的偏差值,方便理解与计算

②注意两个测试点考察的一个情况:挪用一个地点的车辆前提是该地点位于待补充车辆之前,不能从待补充车辆地点之后挪用车辆

③注意本题不能纯dijkstra考虑点权做法,因为不满足贪心条件,只能先找到所有最短路径,然后dfs查找到最优解

#include<bits/stdc++.h>
#define INF 0x3fffffff
struct node
{
    int point,distance;
    node() {}
    node(int _point,int _distance):point(_point),distance(_distance) {}//构造函数
    ~node() {}//析构函数
    friend bool operator < (const node &a,const node &b)//重载运算符,使优先队列按distance从小到大排序
    {
        return a.distance>b.distance;
    }
};
inline int read()//快读,应该没啥用,主要是打一遍找手感
{
    int w=1,x=0;
    char ch=getchar();
    while(ch>'9'||ch<'0')
    {
        if(ch=='-') w=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9') x=(x<<3)+(x<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值