POJ 1724(深度优先搜索)

深搜最短路径+剪枝——POJ1724:ROADS POJ1724:ROADS 深度优先搜索找最短路径,剪枝 阅读详情

题目来源:https://vjudge.net/problem/POJ-1724
分析:从城市1开始深度优先遍历整个图,找到所有能走到N的走法,选一个最优的。如果当前已找到最优路径走法为L,那么在继续搜索的过程中,总长度大于L,则放弃该条路。minL[i][j]表示走到i时花费j的最短长度,如果走到i时总花费大于min[i][j],则不必走下去了。

代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <sstream>
#include <vector> 

using namespace std;


struct node{
	int d,l,t;         
	//d为目的地城市 l为道路的长度 t是收费 
};	
vector<vector<node> > cityMap(110);
int minRoad = 1<<30;       //最短路径 
int totalRoad;     //当前走的路径 
int totalCost;     //当前花费 
int visited[110];  //判断是否经过该点
int minL[110][10010];  //minL[i][j]表示从1到i点,花销为j的最短路径 
int K,N,R;    
//k为花费的最大硬币数目  N为城市的总数  R为道路的总数 

void dfs(int k){
	if(k == N){
		minRoad = min(minRoad,totalRoad);
		return;
	}
	for(int i = 0;i<cityMap[k].size();++i){
		if(!visited[cityMap[k][i].d]){
			int cost = 	totalCost + cityMap[k][i].t;
			if(cost>K){
				continue;
			}
			if(totalRoad+cityMap[k][i].l >= minRoad || totalRoad+cityMap[k][i].l>=minL[cityMap[k][i].d][cost]){
				continue;
			}
			totalRoad += cityMap[k][i].l;
			totalCost += cityMap[k][i].t;
			minL[cityMap[k][i].d][cost] = totalRoad;
			visited[k] = 1;
			dfs(cityMap[k][i].d);
			visited[cityMap[k][i].d] = 0;
			totalRoad -= cityMap[k][i].l;
			totalCost -= cityMap[k][i].t;
		}
	}
}

int main(){
	cin >> K >> N >> R;
	for(int i = 0;i<R;++i){
		int begin;
		node s;
		cin >> begin >> s.d >> s.l >> s.t;
		if(begin != s.d){
			cityMap[begin].push_back(s); 
		}
	}
	totalRoad = 0;
	totalCost = 0;
	memset(visited,0,sizeof(visited));
	for(int i = 0;i<110;++i){
		for(int j = 0;j<10010;++j){
			minL[i][j] = 1<<30;
		}
	}
	visited[1] = 1;
	dfs(1);
	if(minRoad < (1<<30)){
		cout << minRoad << endl;
	}
	else{
		cout << "-1" << endl;
	}
	return 0;
} 

osgEarth添加线特征 部分关键代码: osgEarth::Annotation::FeatureNode* pathNode = 0; osgEarth::Symbology::Geometry* path = new osgEarth::Symbology::LineString(); Track*track = dynamic_cast<Track*>(entity->getProperty(PS_TRACK)); if (track == nullptr) { return; } st. 阅读详情

相关推荐

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

POJ 1724 (分层图最短路)

### POJ 1724题目链接 ### 题目大意: 给你 N个点 ,M条有向路,走每条路需要花费 C元,这段路的长度为 L 。 给你 K元,问你能否从 1走到 N 点且花费不超过 K元。如果可以,输出出最短距离,否则输出 -1 。 显然分层图最短路,这里dist[i][j]表示从 1到i点 且 所剩钱数为j时的最短路,然后跑一遍dijk...

diefen9380的博客 351

STM32铅酸蓄电池内阻测试仪的交流阻抗测量与数据采集优化

本文深入探讨了基于STM32的铅酸蓄电池内阻测试仪设计,重点解析了交流阻抗测量原理与数据采集优化方案。通过采用1kHz交流小信号注入和数字相敏检波技术,实现对电池欧姆内阻的无损精准测量,并详细介绍了硬件前端调理、ADC过采样及系统标定等关键优化手段,有效提升了测量精度与稳定性。

weixin_29168393的博客 487

POJ1724---ROADS (最短路变形(邻接表+优先队列))

【题目来源】:https://vjudge.net/problem/POJ-1724 【题意】 给出旅游经费k,每一条路都要花去一定的经费,在保证能够从点1到点n的情况下,求最短路。 【思路】 这是我的最短路专题里最后一道题了。总体感觉这几天做的还行,学到了不少东西。有苦有乐。 第一次这么在最短路里用优先队列,然后,恍然大悟还可以这么写。 这道题前提保证能够到达n点,并且还要是最短路,那

Crazy 474

黏菌算法(Slime Mould Algorithm,SMA)

这是一篇关于黏菌算法的总结博客,包含算法思想,算法步骤,求函数最值(Python实现),算法改进等,持续更新ing

weixin_46838605的博客 1万+

【DRAM存储器四十七】LPDDR5介绍--LPDDR5的低功耗技术之DVFS

讲述LPDDR5的DVFSC和DVFSQ的工作原理和要求

highman110的博客 899

poj 1724(优先队列+Dij)

题意:k点点数,n个点,m条边,每条边有权值以及通过时会消耗的点数,求在消耗点数不超过k点的情况下,从1到n的最短路径。        分析:显然是一个最短路的变形,而且是一种常见的模型。最短路本身是一个求解最优解的问题,在这里加多了一个限制条件,就是点数,所以变为“在一定的限制条件下求解一个最优化问题”的模型,这样的模型,有一个大致的套路:在满足限制条件后,再进行更新。     求解方法有很

流沙-岁月 872

基于YOLOv10的建筑图纸物体检测系统:从数据集构建到UI界面实现

高度结构化的图形元素标准化的符号和标注系统多层次的细节表达精确的尺寸和位置关系。

YOLO 390

poj 1724 有限制条件的最短路

题目链接:http://poj.org/problem?id=1724 大致提议

乐观之奋斗者 1542

Cadence OrCAD Capture 保持元器件编号情况复制元件,复制后元器件编号与复制前不同的问题解决

如下图所示复制时,已经勾选了“Preserve reference on copy”但是复制后的编号却与复制前不一样。本文简单介绍其原因及解决方法。

fydar的博客 3163

29. 如何通过 ABAP 代码给 SAP OData 元数据增添注解

我们先看下效果,在 MPC_EXT 类的 DEFINE 方法里编写 ABAP 代码之后,用 Postman 使用 url 访问 OData metadata,在返回的数据里,能看到我们用 ABAP 代码添加的自定义注解。你好,请问可以不可以在odata里面通过什么设置,从而自动给metadata.xml中加上注解,实现value help的功能,还是说每次需要在metadata.xml中修改?的词汇引用,然后为命名空间 com.sap.vocabularies.UI.v1 声明了一个别名。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1659

poj1724(带限制的最短路)

题意:一个人要从1点到N点,有m条边可以走,走每条边要花一些钱,这个人只有k的钱,问花的钱不多于K且能到N的最短路。 spfa解决最短路,不过dist数组要加一维,dist【i】【j】表示从1走到了i花了j钱的最短路。 感觉这时候就是个bfs #include #include #include #include using namespace std; int n,k; struct no

constbh的博客 1843

把慢点掰开看:在 SAP HANA 中启用 SQL 优化耗时跟踪 SqlOptTime 的实战指南

摘要:SAP HANA 性能排查中,常出现SQL查询时快时慢的现象,表面看似执行问题,实则是编译阶段耗时过长。通过SQL优化跟踪工具SqlOptStep和SqlOptTime,可精准区分编译与执行时间。SqlOptStep展示优化树变化过程,而SqlOptTime则记录各阶段耗时,帮助定位问题根源。启用SqlOptTime需配置traceprofile,建议限定特定用户以减少系统负载。实际案例显示,报表响应慢常由计算视图编译(CeQo)导致,而非执行阶段问题。解决方案包括调整计算视图展开方式或优化基础视图结

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1008

POJ - 1724 ROADS 【深度优先搜索 + 剪枝】

题目链接:http://poj.org/problem?id=1724 Time Limit: 1000MS   Memory Limit: 65536K Description N cities named with numbers 1 ... N are connected with one-way roads. Each road has two parameters a...

MengHao的博客 270

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

To be excellent! 279

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深搜: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...

housz77的博客 189

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深搜+剪枝 POJ 1724 ROADS

POJ 1724 ROADS Time Limit:1000MS Memory Limit:65536K Total Submissions:12766 Accepted:4722 Description N cities named with numbers 1 ... N are connected with one-wa...

weixin_30426879的博客 116

深度优先搜索(二)寻路问题poj1724

寻路问题: 思路: 从城市1开始深度优先遍历整个图,找到所有能到达N的走发,选出一个最优的。 于是得到如下代码(该代码由于超时不能ac): #include <iostream> #include <vector> #include <cstring> using namespace std; int K, N, R; struct Road { int d, L, t;//路的终点、长度、过路费 }; vector<vector<Roa.

zjsru_Beginner的博客 362

DFS专题_POJ 1724 ROADS

poj 1724题目链接 题意: 有依次标号的N座城市,R条路(单向),每条路连接两个城市。你只有K元钱,若两城市间有路,给出路的长度和过路的花费。问若城市1出发能到达城市N,走过的最短的道路长度。若无法到达输出-1. 数据: 2&lt;=N&lt;=100 0&lt;=K&lt;=10000 1&lt;=R&lt;=10000 每条路长度L,1&lt;=L&lt;=100 每条路...

LATTE 333

POJ 1724

题目连接:http://poj.org/problem?id=1724 题目大意: 找出一条从1到N得最短的一条路并且费用不超过给出的最大费用。   思路: 很容易会想到dfs,但是需要剪枝,首先存储数据要采用邻接表的方式存储,因为这样就避免了去匹配点的过程,其次搜到当前位置比之前记下的最短路长的话,就不用再往下搜了,还要注意控制费用的限制   代码: #include #incl

jn_8316的博客 302

ROADS POJ - 1724 约束最短路 暴搜 加剪枝

http://poj.org/problem?id=1724 题意:最短路的模板,不过每条边加上一个费用,要求总费用不超过k 题解:不能用dijkstra ,直接暴力,dfs维护len和cost。     普通的剪枝:如果当前的cost大于k直接跳出,如果当前的len大于minlen(目前的最优解),跳出。     另一个剪枝:维护花费一定费用 到达某个点 的最短路minL[v]...

aeiv52006的博客 91

[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...

weixin_30764137的博客 92

(DFS+最优、可行性剪枝)POJ1724 ROADS

传送门:POJ1724 ROADS #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;vector&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; typedef long long ll; const int maxn=1...

440
上一篇: PTA 7-10 树的遍历(25 分)
下一篇: 用js写一个计算器
顺顺不吃竹笋
博客等级 码龄10年 32粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值