hdu3001——Travelling 三进制TSP, 状态压缩

在ABAQUS中使用VUMAT子程序实现Hashin失效准则的详细解析与实践:深入探讨复合材料模拟仿真的高级编程技巧 Hashin失效准则是由材料科学家Shlomo Hashin于1962年提出的一种基于能量方法的多向失效理论,主要用于预测复合材料的破坏行为。与传统的单向失效理论不同,Hashin准则考虑了材料内部的多种独立破坏机制,如基体断裂、界面脱粘、纤维断裂等,这些机制在不同应力状态下可能同时或分别发生。通过计算各个机制的能量释放率,Hashin失效准则能够更为准确地预测复合材料在复杂应力状态下的破坏行为。 阅读详情

Travelling

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4106    Accepted Submission(s): 1310


Problem Description
After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being his start station because superman can bring him to any city at first but only once.), and of course there are m roads here,following a fee as usual.But Mr Acmer gets bored so easily that he doesn't want to visit a city more than twice!And he is so mean that he wants to minimize the total fee!He is lazy you see.So he turns to you for help.
 

Input
There are several test cases,the first line is two intergers n(1<=n<=10) and m,which means he needs to visit n cities and there are m roads he can choose,then m lines follow,each line will include three intergers a,b and c(1<=a,b<=n),means there is a road between a and b and the cost is of course c.Input to the End Of File.
 

Output
Output the minimum fee that he should pay,or -1 if he can't find such a route.
 

Sample Input
  
2 1 1 2 100 3 2 1 2 40 2 3 50 3 3 1 2 3 1 3 4 2 3 10
 

Sample Output
  
100 90 7
 

Source
 

Recommend
gaojie   |   We have carefully selected several similar problems for you:   3004  3002  3006  3007  3003


这题一看就是TSP,然后想到要状压,但是这里每个城市最多可以走两次,所以不能用普通的二进制来状压,需要三进制

三进制每一位是0 1 2, 0表示这座城市没到过,1表示到过一次,2表示到过两次
由于一共10座城市,我们先把3^0 --- 3 ^ 10预处理出来,然后化作三进制存好,接着就是dp,但是要注意,可以作为最后状态的状态,它的每一位都不为0(否则就有某个城市没到过),最后枚举所有可以作为尾状态的状态然后求个最小值就ok了

#include <map>
#include <set>
#include <list>
#include <stack>
#include <queue>
#include <vector>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const int inf = 0x3f3f3f3f;

int dp[60000][15];
int dist[15][15];
int three[15] = {0, 1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683, 59049};
int city[60000][15];

int main()
{
	int n, m, u, v, w;
	memset (city, inf, sizeof(city));
	for (int i = 0; i < 59059; ++i)
	{
		int tmp = i;
		for (int j = 1; j <= 10; ++j)
		{
			city[i][j] = tmp % 3;
			tmp /= 3;
		}
	}
	while (~scanf("%d%d", &n, &m))
	{
		memset (dist, inf, sizeof(dist));
		memset (dp, inf, sizeof(dp));
		for (int i = 1; i <= n; ++i)
		{
			dp[three[i]][i] = 0;
		}
		dp[0][0] = 0;
		for (int i = 1; i <= m; ++i)
		{
			scanf("%d%d%d", &u, &v, &w);
			dist[u][v] = min(dist[u][v], w);
			dist[v][u] = dist[u][v];
		}
		int ans = inf;
		for (int i = 0; i < three[n + 1]; ++i)
		{
			bool is_end = 1;
			for (int j = 1; j <= n; ++j)
			{
				if (city[i][j] == 0)
				{
					is_end = 0;
				}
				for (int k = 1; k <= 10; ++k)
				{
					if (city[i][j] == 2)
					{
						continue;
					}
					dp[i + three[j]][j] = min(dp[i + three[j]][j], dp[i][k] + dist[k][j]);
				}
			}
			if (is_end)
			{
				for (int j = 1; j <= n; ++j)
				{
					ans = min(ans, dp[i][j]);
				}
			}
		}
		if (ans == inf)
		{
			printf("-1\n");
			continue;
		}
		printf("%d\n", ans);
	}
	return 0;
}


YOLOv11改进策略【Head/分割头】| 结合CVPR-2024 中的DynamicConv 动态卷积 改进分割头, 优化模型(独家改进) 在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。 阅读详情

相关推荐

中科蓝讯AB536X/AB892X芯片开发避坑指南:Downloader配置中那些容易忽略的细节

本文详细解析中科蓝讯AB536X/AB892X芯片开发中Downloader配置的关键细节,包括软开关机实现、触摸灵敏度调试、量产校频等常见问题。特别针对无PR口芯片的替代方案、触摸参数优化、校频流程等易忽略环节提供实用解决方案,帮助开发者规避量产风险,提升开发效率。

weixin_30687051的博客 476

HDU 3001 三进制状压DP

N个城市,M条道路,每条道路有其经过的代价,每个城市最多可以到达两次,求走完所有城市最小代价,起点任意。 三进制状压,存储每个状态下每个城市经过的次数。 转移方程: dp[i+b[k]][k]=Min(dp[i+b[k]][k],dp[i][j]+dis[j][k]); #include "stdio.h" #include "string.h" const int i

836

Ovito隐藏技巧:用Expression Selection快速提取分子链(附模糊背景配置参数)

本文详细介绍了Ovito软件中Expression Selection功能的隐藏技巧,用于从复杂的分子动力学模拟数据中快速、精准地提取目标分子链。通过结合Expand Selection和Invert Selection等修饰器,形成一套高效的工作流,并深入解析了实现SCI论文级渲染效果的景深模糊参数配置,帮助研究者大幅提升数据处理与图片生成效率。

pz890123的博客 867

Travelling (HDU 3001)

一开始看成了一个城市最多只旅行一次,还以为是简单题,所以直接DFS,可是一直不对。 后来仔细看,是至少旅行两次,这样用DFS就没法了。 后来查了才知道是TSP问题,用的是DP,其实我也不太会写,先是看了一下别人的原理,代码, 自己也是边写边模仿的吧。,就这样了 #include #include #include #include using

jiangjiashi的博客 853

RK3568下GPIO模拟串口

在嵌入式开发中,硬件 UART 资源可能被其他外设占用。此时,通过 GPIO 模拟 UART(软串口)成为一种灵活的解决方案。本文基于 RK3568 平台,结合 Linux 内核模块,实现高精度软串口通信,并深入分析关键技术细节。可以看到已经接收到数据了,可以自己创建自定义的设备文件到/dev下,也可以按照串口设备的标准创建一个设备,后面有时间我写一篇和标准串口设备结合的gpio模拟串口文章。RK3568 GPIO 模拟串口(软串口)实现详解。将编译好的驱动放到板子上运行。再写个Makefile。

文石_2009的博客 364

得物(毒)App潮鞋价格波动监控系统实战:从爬虫开发到数据可视化完整指南

本文将带领您从零开始构建一套完整的得物潮鞋价格监控系统,涵盖爬虫开发、数据存储、价格波动分析和可视化展示等全流程技术。我们将使用最新的Python技术栈,包括异步爬虫框架、智能代理池、反爬虫绕过技巧,以及基于机器学习的时间序列预测模型。无论您是想要追踪特定鞋款价格的潮流爱好者,还是希望构建商业级监控系统的开发者,这篇文章都将为您提供切实可行的解决方案。

2201_76125261的博客 2506

HDU3001Travelling(状压dp)

题目链接 dp[i][j]代表i节点为端点,点集状态为j的最小花费,j用三进制来操作就好了dp[i][j]代表i节点为端点,点集状态为j的最小花费,j用三进制来操作就好了dp[i][j]代表i节点为端点,点集状态为j的最小花费,j用三进制来操作就好了 #include<bits/stdc++.h> using namespace std; typedef long long LL; L...

IDrandom的专栏 309

GameFramework框架详解之 Network网络框架

NetworkManager只负责维护NetworkChannel,实际的有种我们简历网络连接的也是NetworkChannel作为一个网路频道,这样管理起来比较方便,比如:一个游戏可能有多个网络连接,那么我们建立多个网络频道即可,或者当我们一个网络频道断线后,我们可以直接再新建一个,防止数据混乱。/// /// 网络管理器。/// /// 网络频道。/// 用户自定义网络错误事件。/// 检查是否存在网络频道。/// 获取网络频道。/// 获取所有网络频道。

TxNet 3367

PAT甲级——A1087 All Roads Lead to Rome【30】

Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happiness. Input Specification: ...

weixin_30632089的博客 194

《Python等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级谁》Python编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,限时9.9元,欢迎订阅!

人生就是一个不断学习的过程 1880

10|Git Diff 与增量代码识别:本次到底改了哪些代码?

本文介绍 Git Diff 和增量代码识别,帮助你理解精准测试如何先找到本次真正变化的代码。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 160

HDU3001-Travelling(三进制+状态压缩)

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being his start station because superman can bring him to any

weixin_43357583的博客 253

实战|基于Kappa架构的用户行为实时分析平台搭建教程

数据源:用Kafka存储全量数据(实时+历史),作为“事实来源”;处理引擎:用Flink等流处理引擎,读取Kafka中的数据,执行清洗、转换、聚合等操作;存储层:将处理结果写入实时存储(如Elasticsearch)或批量存储(如Hive);消费层:用可视化工具(如Kibana)展示结果,或提供API供业务系统调用。Kappa架构的关键设计原则全量数据存于Kafka:Kafka的“无限 retention”特性(默认保留7天,可配置更长)让它成为全量数据的存储介质;用流处理引擎处理所有数据。

Java大师兄的博客 797

Travelling HDU - 3001 三进制状态压缩 tsp问题

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being...

weixin_41544329的博客 186

VB摄像头监控

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU 3001 Travelling (状态压缩/三进制)

Travelling(HDU 3001) Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8931 Accepted Submission(s): 2914 Problem Description After coding ...

爱玲姐姐的博客 870

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hdu 3001 Travelling (TSP问题,状压dp)

After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being

Vision 1373

HDU 3001 Travelling (三进制状态压缩DP+BFS)

题意:有n个点(n 分析:每个点最多经过两次,则用三进制保存状态,一个好的技巧就是开个pos数组,记录每个状态用三进制表示时,每一位的情况。    枚举每个点为起点,然后每次sum值是不需要清空的,清空了反而造成了诸多重复遍历.................... #include #include #include #include #define INF 0x7FFFFF

Paradiser 1511

HDU 3001--Travelling(状态压缩+tsp)

来源:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意:n个点,m个边,求遍历所有边的最短路径,并且每点最多访问两次。 分析:很经典的TSP问题,但是题目又有改变,每个旅游地可以走两遍,故进行扩展2状态的状态压缩DP伸展为3状态的状态压缩问题。0表示没去过此点,1 表示去过一次,2表示去过两次,状态转移方程基本和以前一样dp[i][j]=min

Xcockroach的专栏 684

hdu3001 Travelling(TSP+三进制)

题目链接:点这里!!! 题意: 给你n(n 题解: 你可以可以利用三进制表示这个点你经过了几次,在加上基础的TSP就可以解决了!!! 代码: #include #include #include #include #include #include #include #include #include #include #include #include #in

Zsss的博客 379

HDU3001 Travelling

状压DP TSP

a free man 554

HDU3001——Travelling(状态压缩DP)

Travelling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2393    Accepted Submission(s): 692 Problem Description After coding so many

JIA_char 617

HDU 3001 Travelling

Problem Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not

XDU_PYL的博客 522

HDU 3001 Travelling:TSP(旅行商)【节点最多经过2次】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意:   有n个城市,m条双向道路,每条道路走一次需要花费路费v。你可以将任意一个城市作为起点出发,然后遍历每一个城市,并保证同一个城市最多经过2次。问你遍历这些城市的最小费用是多少。 题解:   传统的TSP问题中,每个城市只能经过一次,做法为三重for循环,分别枚举...

a1392136的博客 277

Travelling(HDU3001+状压dp+三进制+最短路)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题目: 题意:n个城市,m条边,每条边都有一个权值,问你经过所有的城市且每条边通过次数不超过两次的最短距离。 思路:状压dp+三进制,dp[i][j]表示在状态i下以j为目标城市的最短距离,转移方程为nw = i + fi[k];dp[nw][k] = min(dp[nw][...

di6499的博客 148

HDU 3001 - Travelling TSP

http://acm.hdu.edu.cn/showproblem.php?pid=3001#include #include #include #include #include #include using namespace std; template _T Max(_T a , _T b){ return (a>b)?(a):(b); } template _T Max

生命有一种绝对 796

hdu 3001 Travelling 状压dp TSP变形

题目:点击打开链接 题意:给定n 个城市已经 m 条路 以及对应路费c,要求遍历所有城市最少的路费,每个城市不能超过2次 分析:要求每个点最多走两边,不是只可以走一次,所以要用三进制的状态压缩解决这个问题。可以预处理每个状态的第k位是什么。 状态的表示 f[st][i],表示现在在i点,状态是st的最短路程。那么状态转移显而易见:f[st][i]=min( f[{st}-i][j]+

01的世界 394

HDU 3001 Travelling (三进制状压dp)

n(n<=10)个城市,知道每个城市间的旅行费用,但每个城市最多走两遍。问最小花费是多少 。 也就是每个城市可以走两次的tsp问题。

Follow My Heart 608
上一篇: hdu2151——Worm
下一篇: hdu1506——Largest Rectangle in a Histogram
tokers
博客等级 码龄12年 71粉丝 700原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值