/*
可以算作是A*算法了,利用priority_queue实现
*/
#include <iostream>
#include <queue>
#define MAX_N 100
#define MAX_K 10000
using namespace std;
struct node
{
int countv;
int data[MAX_N * MAX_N + 5][3]; //id, dist, coins
}nodes[MAX_N + 1];
int K, noden, edgen;
int minDist = INT_MAX;
int minCostDist[MAX_N + 1][MAX_K + 1]; //minCostDist[i][k]表示从1走到i花费k需要的最短路径长度
struct elem
{
int id, dist, cost;
};
struct compare
{
//返回false,e1才会排在前面
bool operator()(const elem &e1, const elem &e2)
{
return (e1.dist == e2.dist) ? e1.cost >= e2.cost : e1.dist > e2.dist;
}
};
priority_queue<elem, vector<elem>, compare> bfsq;
void bfs()
{
elem startNode, curNode, newNode;
startNode.cost = 0; startNode.dist = 0; startNode.id = 1;
minCostDist[1][0] = 0;
bfsq.push(startNode);
while(!bfsq.empty())
{
curNode = bfsq.top(); bfsq.pop();
if(curNode.id == noden)
{
if(curNode.dist < minDist)
minDist = curNode.dist;
return;
}
int num = nodes[curNode.id].countv;
for(int i = 1; i <= num; i++)
{
newNode.id = nodes[curNode.id].data[i][0];
newNode.dist = curNode.dist + nodes[curNode.id].data[i][1];
newNode.cost = curNode.cost + nodes[curNode.id].data[i][2];
int minv = minCostDist[newNode.id][newNode.cost];
if(newNode.cost <= K && newNode.dist < minv)
{
minCostDist[newNode.id][newNode.cost] = newNode.dist;
bfsq.push(newNode);
}
}
}
}
int main()
{
int i, from, to, dist, coins;
scanf("%d%d%d", &K, &noden, &edgen);
for(i = 1; i <= edgen; i++)
{
scanf("%d%d%d%d", &from, &to, &dist, &coins);
int pos = ++nodes[from].countv;
nodes[from].data[pos][0] = to;
nodes[from].data[pos][1] = dist;
nodes[from].data[pos][2] = coins;
}
memset(minCostDist, 5, sizeof(minCostDist));
bfs();
if(minDist != INT_MAX) printf("%d/n", minDist);
else printf("-1/n");
return 0;
}
相关推荐
麒麟系统grub被锁怎么办?双密码遗忘救援指南(实测V10 SP3版本)
本文详细介绍了麒麟系统V10 SP3版本在GRUB和root密码双遗忘情况下的救援指南。通过ISO镜像进入救援模式,结合单用户模式操作,实现密码重置与系统权限恢复,特别适用于等保合规环境。
poj 1724 Roads dfs Java
poj 1724 Roads 这题主要是学习如何剪枝,不只是最优性剪枝(当当前的路径长度大于已经求得的最大路径长度就回到上一步),还学习保留中间计算结果剪枝。 minLen [ i ] [ j ] 表示到达城市 i 花费 j 的最小路径长度,并在搜索过程中不断的对该中间结果进行更新。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.St
Nifi SNI 问题解决方案
Nifi 在配置 SSL 时,如果没有正确设置主机名(SNI),就会导致。为了解决这个问题,我们需要重新配置 Nifi 的 SSL 证书,并确保所有相关配置项(如服务器地址、证书路径和密码等)正确无误。以下是一个详细的解决步骤,以帮助你正确配置 Nifi 并解决 SNI 错误。文件中的配置项(如服务器地址、端口和证书路径),以及正确设置用户凭证。通过这些配置,你可以确保 Nifi 在支持 HTTPS 的同时,正确处理 SSL/TLS 的 SNI 问题。文件,配置服务器地址、端口以及证书路径和密码。
深搜:POJ1724:ROADS
深搜:POJ1724:ROADS 问题描述 描述 N cities named with numbers 1 … N are connected with one-way roads. Each road has two parameters associated with it : the road length and the toll that needs to be paid for t...
DCM07-诊断服务EcuReset ($11 )的配置和实现
文章目录1 诊断服务EcuReset ($11 )1.1 概述1.2 诊断模式声明组1.3 代码实现1.4 配置参数 传送门 ==>> AutoSAR实战系列300讲「糖果Autosar」总目录 1 诊断服务EcuReset ($11 ) 1.1 概述 该服务实现了 ECU 内的复位功能,协议的具体理论讲解请参考「FlashBootloader03【电控单元复位服务($11)】」。在接收到UDS 服务 0x11 的请求时,DCM 模块应触发 ModeDeclarationGroupPrototy
《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台
处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。
ROADS poj-1724
题目链接:1724 -- ROADS 题面: 题意:有r条单向道路,每条路有一个过路费和时间,我只有k元,问走到n的最少时间 思路:用链式前向星存图,然后搜索遍历一遍。 两个剪枝: 1.如果花费超过k了直接返回。 2.如果走到某个点的时间超过最短时间就返回 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <.
DSShop移动商城网店系统 反序列化RCE漏洞复现
DSShop单店铺移动商城网店系统的getCartList方法的cart参数存在php反序列化漏洞,攻击者可以通过漏洞执行任意代码,获取服务器权限。
POJ-1724 ROADS
POJ-1724 ROADS 题目链接:POJ-1724 题目大意:给定起点终点和路程长度和花费 问你从1到n点在自己钱够的情况下的最短路径 解题思路:最一开始直接暴力的dfs来着 后来是直接就RE了 估计是爆栈了 之后改成用优先队列做,同一起点终点 道路长度从小到大排列 花费也从小到大排 然后用到了重载运算符 代码块: #include<iostream> #include<...
借助Claude实现Playwright的自动化(MCP Server)
MCP Server自己开发也是可以的,现在也有很多开箱即用的MCP Server,可以在https://github.com/modelcontextprotocol/servers中查找。
[ 人力资源面试篇 ] HR 面试题分析详解大集合,看完直怼面试官(二)
那么在这个系列的文章中,我们聊到 HR 面谈什么?并且总结了五十个常见的人力资源面试题,在这里分享给大家。
poj1724ROADS
http://poj.org/problem?id=1724 解题思路: 从城市 1开始深度优先遍历整个图,找到所有能到达 N 的走法 , 选一个最优的。 优化: 1) 如果当前已经找到的最优路径长度为L ,那么在继续搜索的过程中,总长度已经大 于L的走法,就可以直接放弃,不用走到底了 2) 用midL[k][m] 表示:走到城市k时总过路费为m的条件下,最优路径的长度。若在 后续的
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
[POJ1724]ROADS
[POJ1724]ROADS 1 #include<iostream> 2 #include<limits.h> 3 #include<stdio.h> 4 #include<vector> 5 #include<string.h> 6 using namespace std; 7 inl...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
POJ1724-ROADS
http://poj.org/problem?id=1724 #include<iostream> #include<queue> #define INF 1000000000 #define MAXR 105 using namespace std; int E,N,M,s,d,l,t,dis[MAXR],i; struct Node { ...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
POJ-1724-ROADS
POJ-1724-ROADS http://poj.org/problem?id=1724 单向边最短路问题,但是每条边都有一个费用,要求你的最短路方案的总的花费不能超过限制,深搜即可 #include #include #include #define M 10000 #define INF 99999999 struct edge { int v; int len; int tol
poj 1724 ROADS
传送门:http://poj.org/problem?id=1724 注意有重边! ①Dijsktra+优先队列(16ms): #include #include #include #include #include using namespace std; const int INF=0x3f3f3f3f; const int maxn=10010; int T,n,k,r,e; i
[POJ 1724]ROADS[SPFA][DFS剪枝]
题目链接:[POJ 1724]ROADS[SPFA][DFS剪枝] 题意分析: 求从点1到点N费用不超过K的最短路。 解题思路: 用spfa根据最小花费,跑出一组距离作为起始答案,如果该答案费用大于K,那么就无解。 确认有解后,我们从点1开始DFS,用花费和之前算的距离作为剪枝。 个人感受: 差点弃疗了。1A也是蛮爽的。 具体代码如下: #include #include #
POJ-1724 Roads + Python (DFS)
原题链接:1724 -- ROADS 参考资料:王子解救公主力扣 174. 地下城游戏 DFS + Python_xxdragon126的博客-优快云博客 一问题描述: 从起始城市1到终止城市N,要求在路费ALL可控的情况下路程最短,返回最短路程。详见原题链接。 结题思路: ## 使用DFS: # 1 首先,将数据转化为嵌套的字典,以便于查找当前城市所能到达的所有城市,以及到达各城市所需的路径和路径。 # 2 然后,从起始点1开始,查找其邻接点城市,将每个城市作为初始点,进行dfs搜索 .
poj-1724 ROADS
最短路 附加费用限制
poj1724——ROADS
题目:Bob想从城市1去城市N,这些城市间有一些长度和花费不同的路共R条,两个城市之间可以有很多路(单向路),Bob只有K枚硬币,问他的最短路径 输入:K(0 N(2 R(1 第i条路的描述(共R行,S D L T分别代表起点、终点、路长( 1 输出:最短路径长度(如果不存在输出-1) 分析:dfs+剪枝/bfs
(DFS+最优、可行性剪枝)POJ1724 ROADS
传送门:POJ1724 ROADS #include<iostream> #include<cstdio> #include<vector> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int maxn=1...
poj1724 ROADS
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14863 Accepted: 5393 Description N cities named with numbers 1 ... N are connected with one-way roads
384



被折叠的 条评论
为什么被折叠?



