HDU 3768 Shopping

手把手教你学Simulink--基于未来出行解决方案的场景实例:电动飞行汽车(eVTOL)的动力系统建模与仿真 电动垂直起降飞行器零道路拥堵:三维空间飞行绿色低碳:全电驱动,零排放快速响应:城市内15分钟直达低噪音:相比直升机↓20dB📊 预测:2030年全球eVTOL市场规模将超300亿美元,中国、美国、欧洲加速适航认证。本文通过,构建了电动飞行汽车(eVTOL)动力系统高压电池系统建模电力电子(DC-DC、逆变器)实现PMSM电机+螺旋桨推进系统搭建完整飞行任务动态仿真性能KPI评估与优化。 阅读详情

传送门

dfs回溯搜索。(哈密顿回路 / TSP问题)
给一个无向图,给定起点,再给几个商店(最多10个),要求找一条从起点出发、经过所有商店、再回到起点的最短路。

因为商店数量很少,肯定是搜索了。可以用dfs,也可以用状压dp?(不太懂,没试,像这个一样?)
需要先最短路预处理一下,因为只会用到起点和这些商店之间的最短路,所以先把这些关键点的下标映射到一个数组,然后以每个关键点为源点来一遍最短路。

然后就是写这个dfs了,从起点出发,用一个vis[]来避免单次寻路中重复访问商店,最后都商店都访问完了再和起点连一下、记录结果。这个dfs的参数有三个,这种题dfs的写法务必掌握(真的很基础了。。)。其实很像n皇后问题(参考这个),递归函数自带了回溯的过程,让dfs夹在两个标记设置中间。这样就枚举出了所有可能的路线,时间复杂度O(n!)(瞎猜的 )


#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <queue>
using namespace std;

const int INF = 1e9;
const int MAXN = 1e5;
int N, M, T, X;
int S[11];                             // 包括起点,最多11个

struct Edge
{
	int n, w;
};
vector<Edge> ve;
vector<int> v[MAXN];

int d[11][MAXN];                       // 以(起点以及所有商店)为源点执行最短路
bool inq[MAXN];

bool vis[11];                          // dfs判断是否已访问,一次连续的向下探索过程不能重复访问
int ans;

void init()
{
	ve.clear();
	for (int i = 0; i < N; i++) v[i].clear();
	memset(vis, 0, sizeof vis);
	ans = INF;
}

void spfa(int s)
{
	queue<int> q;
	memset(inq, 0, sizeof inq);
	fill(d[s], d[s] + N, INF);
	
	q.push(S[s]);
	inq[S[s]] = true;
	d[s][S[s]] = 0;
	
	for (; !q.empty();)
	{
		int t = q.front();
		q.pop();
		inq[t] = false;
		for (int i = 0; i < v[t].size(); i++)
		{
			int n = ve[v[t][i]].n;
			int w = ve[v[t][i]].w;
			if (d[s][t] + w < d[s][n])
			{
				d[s][n] = d[s][t] + w;
				if (!inq[n])
				{
					q.push(n);
					inq[n] = true;
				}
			}
		}
	}
}

void dfs(int n, int sum, int step)
{
	if (step == X)
	{
		ans = min(ans, sum + d[n][0]);
		return;
	}
	for (int i = 1; i <= X; i++)            // 中间没必要访问起点,全访问完了最后回起点就行了
	{
		if (!vis[i])
		{
			vis[i] = true;
			//for (int j = step; j--;) cout << "  ";
			//cout << "(" << n << "," << sum << "," << step << ")调用(" << i << "," << sum + d[n][S[i]] << "," << step + 1 << ")" << endl;
			dfs(i, sum + d[n][S[i]], step + 1);
			//for (int j = step; j--;) cout << "  ";
			//cout << "(" << n << "," << sum << "," << step << ")调用结束(" << i << "," << sum + d[n][S[i]] << "," << step + 1 << ")" << endl;
			vis[i] = false;
		}
	}
}

int main()
{
	int a, b, c;
	scanf("%d", &T);
	for (; T--;)
	{
		scanf("%d%d", &N, &M);
		init();
		for (int i = 0; i < M; i++)
		{
			scanf("%d%d%d", &a, &b, &c);
			ve.push_back(Edge{ b,c });
			ve.push_back(Edge{ a,c });
			v[a].push_back(i << 1);
			v[b].push_back(i << 1 | 1);
		}

		S[0] = 0;
		spfa(0);
		scanf("%d", &X);
		for (int i = 1; i <= X; i++)
		{
			scanf("%d", &S[i]);
			spfa(i);
		}

		dfs(0, 0, 0);                 // 总共最多就10个点
		printf("%d\n", ans);
	}

	return 0;
}
Statistics and Machine Learning Toolbox Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具 立即下载

相关推荐

RKNN3588——YOLOv8的PT模型转RKNN模型

1. 首先克隆rknn修改后的ultralytics版本项目到本地主要是修改了源码的ultralytics/nn/modules/head.py和ultralytics/engine/exporter.py两个文件。2. 使用修改后的ultralytics对pt模型进行模型转换,此处的format=rknn代表支持rknn后续的转换,而不是用onnx,一定要注意!!!

张飞飞的博客 7171

双调欧几里得旅行商问题_物流重要问题—最短路径

物流问题需要考虑的核心要素包括距离、时间、花费等,大多时候又是同一个问题,因为距离短往往就意味着花费少和时间短,或者你就把2点之间的花费看成是2点的距离。万变不离宗, 距离问题最核心的就是最短路径问题(shortest path problem),众多的问题和模型就是其变身而已。为了方便我们解决,首先可以把这类题抽象成网点图network diagram。最短路径问题就是给你很多个点,让你画出一条...

weixin_39758392的博客 820

卡尔曼滤波五步拆解:用Excel手推姿态解算全过程

本文通过Excel手推演示,详细拆解了卡尔曼滤波在姿态解算中的五步核心流程。文章以融合陀螺仪与加速度计数据估算角度为例,从状态预测、协方差更新到增益计算,逐步展示如何将抽象的矩阵运算转化为可视化的表格计算,帮助读者直观理解滤波器的“预测-修正”机制,并为算法实现与参数调优提供清晰指导。

hhh00的博客 978

暑假-最短路(Bellman-ford、spfa)-A - Arbitrage

题意:给你一些货币,和货币之间的转换率。 问:是否存在某种货币经过数次转换回到原本的货币之后有利润 (即求从起点出发再回到起点时候是否有钱赚,即回路问题) 方法:Floyd,Bellman-ford算法 注意:数组是double型,将字符串转换为对于的号码, 初始化自身与自身转换的汇率为1. 货币之间的转换为乘法运算 Floyd算法: #include #include us

slime_kirito的专栏 401

[0352]基于JAVA的停车场收费智慧管理系统的设计与实现

其次,从经营管理层面考虑,本系统涵盖了丰富的月卡管理和财务结算功能,如月卡用户管理、缴费、注销、挂失、解挂、补办等全流程服务,以及临保和月保的结算汇总与欠费查询等功能,这不仅有助于规范停车场的日常运营管理,更能有效提高财务管理效率,降低运营成本,实现精细化、数字化的财务管控。综上所述,本课题计划研发的基于Java的停车场收费智慧管理系统将在现有研究成果的基础上,重点优化月卡用户全生命周期管理和财务统计分析功能,以满足现代停车场高效、精准、安全的管理需求,紧跟行业发展趋势,为推动智慧城市的建设贡献一份力量。

muyu2980的专栏 589

图文实录|大规模预训练模型:探讨与展望

第二期「澜舟分享会」我们邀请到来自复旦大学计算机学院邱锡鹏教授分享了“大规模预训练模型:探讨与展望”,本此演讲主要围绕大规模预训练语言模型展开讨论,并探讨大模型成功的原因、适用场景、未来发展方向以及身处大模型时代我们的机遇。

langboat_mengzi的博客 1205

F - Wormholes(Spfa判断负环)

F - Wormholes While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at...

柠檬的博客~~~ 330

海康威视iSC平台视频流对接:RTSP、HLS、WS三种协议到底该怎么选?

本文深入分析海康威视iSC平台视频流对接中RTSP、HLS和WebSocket三种协议的优缺点,帮助开发者根据实时性、兼容性和网络环境做出最优选择。特别适合综合安防管理平台的Web视频监控系统开发,提升用户体验和系统性能。

weixin_28365523的博客 691

poj 2907 Collecting Beepers 邮递员问题暴力解法

题意: 给起点和n个点,求从起点出发经过这n个点每个点至少一次再回到起点的最短路。 分析: 类似邮递员问题,直接用STL枚举访问顺序暴力解决。 代码: //poj 2907 //sep9 #include #include using namespace std; int x[16],y[16]; int d[16][16]; int a[16]; int n; int main()

sepNINE的专栏 1426

《QGIS快速入门与应用基础》209:重叠标注处理(移除/偏移)

系统讲解了QGIS中处理标注重叠问题的核心方法与实操流程。文章首先阐述了重叠标注处理的底层逻辑,即 先预防、再调整、后兜底 的递进式策略,并详细介绍了设置入口与界面布局。重点讲解了偏移处理这一首选方案,包括基础方向设置、最大偏移距离与步长配置、以及自动换行等进阶优化规则。针对不同要素类型(点、线、面)提供了行业规范的偏移方向设置建议,并给出从稀疏到密集场景的完整参数推荐值。最后以城市POI点图层为例,演示了5步偏移设置流程,帮助用户实现 无重叠、无压盖、重点突出 的专业标注效果。

LuckyHanMo的博客 671

【Unity】Gif图片播放插件(支持UI及模型纹理渲染两种模式)

unity本身不支持GIF格式文件直接渲染, 因此一般的做法是通过加载图片,通过代码控制其循环播放、停止等,模拟动画效果,本文简单介绍一下某个现有开源工具,感谢开源作者。

灵境引路人 4036

hdu2648(字符串哈希)

hdu2648 #include<bits/stdc++.h> using namespace std; const int N = 10005; struct node{ char name[35]; int price; }; vector<node>List[N]; // 用来解决冲突 unsigned int BKDRHash(char*str){ // 哈希函数 unsigned int seed = 31,key = 0; while(*str)

zZz_______的博客 693

C# 工业上位机集成 YOLOv8 全实战:模型转换→相机取流→PLC 联动落地部署

// 检测结果实体类,工业场景扩展置信度、坐标、类别字段set;set;set;set;/// 模型配置常量,与导出参数保持一致// 置信度阈值// 非极大值抑制阈值public static readonly string[] ClassNames = { "物料", "缺陷", "挡板" };// 自定义类别本文完整实现了YOLO模型转换→C#上位机集成→工业相机对接→PLC联动→现场部署标准化模型转换流程,杜绝C#端兼容性问题;解耦相机取流、推理、UI线程,满足工业高稳定性要求;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 320

HDU-3768-Shopping(spfa+dfs)

题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=3768 题意:给一个无向图,起点为0,从起点开始要走s个点再回到起点的最短路。 由于s<=10,可以先记录从一个点到另一个点的最短路径,然后在暴力枚举从0开始走这s个点的顺序。 最短路详见博客:http://blog.youkuaiyun.com/newproblems/article/detai...

haojunliang_hao的博客 481

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU-3768Shopping

题目:http://acm.hdu.edu.cn/statistic.php?pid=3768 题意:给定无向图,问从0出发遍历所有指定点所需最短时间,点100000,边100000,指定点 思路:首先求出所有指定点两两之间的最短路,包括0点, 1:直接10!枚举遍历顺序,求出最小值#include #include #include #include #include #include u

wen_xp的专栏 413

数学建模模型总结

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

spfa+枚举 hdu 3768 Shopping

题意不难理解,n个点组成的m条路,任选s个点,问s个点走一圈的最小路程,先spfa求出s个点相互直接的最短路程,然后DFS一下就行了。 #include #include #include #include using namespace std; typedef int weight_t; const int SIZE_E = 200050; const int SIZE_V = 1

bitwater的空间 344

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【HDU】3768 Shopping 最短路+DP

传送门:【HDU】3768 Shopping

poursoul 958

HDU-3768-Shopping

ACM模版描述题解给定若干商店,需要遍历一趟遍历所有商店并返回起点0,求最短路~~~,这道题由于商店很少,所以可以最短路+dfs,首先单源最短路求0到各个商店距离,然后将商店和商店、商店和起点的所有最短路入另一张图中,构建一张无向完全图,然后dfs即可。代码#include <iostream> #include <cstdio> #include <cstring> #include <queue

逐梦者 492

hdu3768Shopping 最短路+暴力

//给一个无向图,其点为0,从起点开始要走s个点再回到起点的最短路 //由于s<=10,可以先记录从一个点到另一个点的最短路径 //然后在暴力枚举从0开始走这s个点的顺序 #include<cstdio> #include<cstring> #include<iostream> #include<queue> using namespace std ; const int maxn = 100010

ijbuhv的专栏 1214

hdu 3768 Shopping(DFS+最短路)

Shopping Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 768    Accepted Submission(s): 257 Problem Description You have just move

TUT我好菜啊 534

Shopping(SPFA+DFS HDU3768)

Shopping Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 632 Accepted Submission(s): 209Problem Description You have just moved into a ne

绝尘 938

hdu 3768 Shopping(最短路+排列组合)

Shopping Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 511    Accepted Submission(s): 165 Problem Description You have just moved in

WEYuLi的专栏 1060

HDU 3768 Shopping spfa+dfs枚举

题意:从一个点出发经过指定的点,然后回到起点,找最短路。 想法:先求出起点以及每一个要经过的商店点的单源最短路,即求S+1次spfa,因为只有最多10个商店,可以枚举商店访问的先后顺序,然后取出最小值即可。 #include #include #include #include #define inf 0x7fffffff using namespace std; const

猫ER 774

HDU3768 Shopping 解题报告【SPFA预处理+dfs】

HDU 3768

中国计算机学会成都七中(高新校区)委员会委员活动室 361

hdu 3768 Shopping【SPFA+状压DP】

Shopping Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 748    Accepted Submission(s): 250 Problem Description You have just moved into

mengxiang000000 825
上一篇: HDU 3339 In Action
下一篇: HDU 3631 Shortest Path
Crossing over
博客等级 码龄10年 6粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值