LCP 35. 电动车游城市(分层图最短路+Dijkstra)
leedcode测试链接:https://leetcode.cn/problems/DFPeFJ/
题解:
class Solution {
public:
int electricCarPlan(vector<vector<int>>& paths, int cnt, int start, int end, vector<int>& charge) {
int n = charge.size();
vector<vector<pair<int,int>>>graph(n);
vector<vector<bool>>vis(n,vector<bool>(cnt+1,false));
priority_queue<vector<int>,vector<vector<int>>,greater<vector<int>>>pq;
vector<vector<int>>dis(n,vector<int>(cnt+1,INT_MAX));
for(int i=0;i<paths.size();i++)
{
int u = paths[i][0];
int v = paths[i][1];
int w = paths[i][2];
graph[u].push_back({v,w});
graph[v].push_back({u,w});
}
pq.push({0,0,start});
while(!pq.empty())
{
vector<int> node = pq.top();
pq.pop();
int cost = node[0];
int pow = node[1];
int cur = node[2];
if(vis[cur][pow])continue;
if(cur==end)return cost;
if(pow<cnt&&!vis[cur][pow+1]&&charge[cur]+cost<dis[cur][pow+1])
{
dis[cur][pow+1] = charge[cur] + cost;
pq.push({dis[cur][pow+1],pow+1,cur});
}
vis[cur][pow]=true;
for(auto edge:graph[cur])
{
int nt = edge.first;
int rpow = pow - edge.second;
int ct = cost+edge.second;
if(rpow>=0&&!vis[nt][rpow]&&ct<dis[nt][rpow])
{
dis[nt][rpow]=ct;
pq.push({ct,rpow,nt});
}
}
}
return -1;
}
};
LCP 35. 电动车游城市(分层图最短路+Dijkstra)的更多相关文章
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路 + Dijkstra
Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i ...
- BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路
BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...
- ACM-ICPC 2018 南京赛区网络预赛 L 【分层图最短路】
<题目链接> 题目大意: 有N个城市,这些城市之间有M条有向边,每条边有权值,能够选择K条边 边权置为0,求1到N的最短距离. 解题分析: 分层图最短路模板题,将该图看成 K+1 层图,然 ...
- BZOJ2662[BeiJing wc2012]冻结——分层图最短路
题目描述 “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享受着魔法卡片(Spe ...
- 2763. [JLOI2011]飞行路线【分层图最短路】
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...
- BZOJ2662:[BJWC2012]冻结(分层图最短路)
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- 【bzoj2763】[JLOI2011]飞行路线 (分层图最短路)(优先队列dij)
[bzoj2763][JLOI2011]飞行路线 2014年3月25日1,7260 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城 ...
- 分层图最短路【bzoj2662】[BeiJing wc2012]冻结
分层图最短路[bzoj2662][BeiJing wc2012]冻结 Description "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" ...
- 分层图最短路【bzoj2763】: [JLOI2011]飞行路线
bzoj2763: [JLOI2011]飞行路线 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0 ...
- [JLOI2011]飞行路线 分层图最短路
题目描述: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一 ...
随机推荐
- sublime仿IDEA darcula主题
按ctrl+shif+p,输入install package,进入 搜索Darkula,出来的就是了,安装好后在配色方案里选择该主题即可. 记住,是Darkula ,不是darcula.
- 代码随想录第十天 | 栈与队列part02
第五章 栈与队列part02 150. 逆波兰表达式求值 本题不难,但第一次做的话,会很难想到,所以先看视频,了解思路再去做题 题目链接/文章讲解/视频讲解:https://programmerc ...
- QEMU安装巨大的坑
网上教程大多数让你 sudo apt install qemu 实际上根本没用!!!! 查了一下debian官网 结果 QEMU is a fast processor emulator. Once ...
- 在java中使用lua脚本操作redis
前言 众所周知,redis可以执行lua脚本,至于为什么要用lua脚本来操作redis,自行百度咯 开始 Bean类 package cn.daenx.myadmin.common.config.re ...
- java返回数据库中层级结构数据的纯算法写法,以动态菜单为例
说明 1.纯算法版本,跟treeListMap版本比起来的优点是,纯算法版只查询了一次数据库 2.里面有不同角色分配不同的菜单相关代码,注意复制粘贴. 3.可以无限嵌套层次结构,这里只用到了两层,仅为 ...
- (包含5w字提示词开源)手把手教你搭建开源提示词优化平台
前言:为什么要自己搭建? 各位技术同学们,还在为ChatGPT的网络限制而苦恼吗?还在担心敏感数据泄露给第三方吗?今天给大家带来一个超级实用的解决方案--自部署AI提示词优化平台! 想象一下: 数据完 ...
- k8s servicemonitor 采集超时配置
背景说明 我们有时候在编写exporter时,其中某个采集的metrics接口获取数据很慢,可能需要达到10-20S,基于此种情况,如果我们按照ServiceMonitor默认的配置进行,这里默认sc ...
- linux服务器常用硬件查询操作
查看服务器内存条数 [root@test ~]# dmidecode |grep -P -A5 "Memory\s+Device" |grep Size |grep -v Rang ...
- 资深育儿专家智能体,AI都已经涉及这块了?
本文由 ChatMoney团队出品 介绍说明 在育儿的道路上,您是否常常感到迷茫和无助?面对孩子的成长问题.教育难题以及各种突发状况,您是否渴望有一位专业的导师为您指引方向?现在,让资深育儿专家智能体 ...
- MySQL数据库表关系详解
MySQL数据库表关系详解 (1)一对一 一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面 一对一的关系就是一种特殊的多对多的 ...