首页 > 其他分享 >206 旅行商问题

206 旅行商问题

时间:2024-08-14 17:29:54浏览次数:12  
标签:旅行 cnt 蜗蜗 206 int 城市 len 问题 vis

// 206 旅行商问题.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

/*
http://oj.daimayuan.top/course/14/problem/645

蜗蜗的世界里有 n个城市,城市两两之间通过高速公路连接,
从第 i个城市走到第 j个城市需要花费 ai,j的时间。

现在蜗蜗想从 1 号城市出发旅游,他想把每个城市都玩个遍,但又不想在一个城市玩两遍,玩完以后蜗蜗需要回到 1 号城市应付期末考试。
请问蜗蜗最少需要花费多少时间?

蜗蜗到了一个城市以后,一定会在这个城市游玩。蜗蜗在出发之前会先在 1 号城市游玩。
连接两个城市的高速公路不会经过其他城市。
由于路况的原因,从第 i个城市走到第 j个城市花费的时间不一定等于从第 j个城市走到第 i个城市花费的时间。

输入格式
第一行一个整数 n表示城市数目。

接下来 n行,每行 n个整数。第 i行第 j 列的整数表示 ai,j。

输出格式
一行一个整数表示答案。

样例输入
2
0 1
2 0
样例输出
3
数据范围
对于 100%的数据,保证 2≤n≤8,如果 i=j,则 ai,j=0,否则 1≤ai,j≤10000。
*/



#include <iostream>
#include <cstring>


using namespace std;

const int N = 10;
int g[N][N];

int n, k;
int vis[N], cnt,len;
int ans = 0x3f3f3f3f;

void dfs(int x,int prev) {
	vis[x] = 1; cnt++; len += g[prev][x];
	if (cnt == n && x == k) {
		ans = min(ans, len);
		len -= g[prev][x]; vis[x] = 0; cnt--; return;
	}
	else if (cnt == n) {
		len -= g[prev][x]; vis[x] = 0; cnt--; return;
	}

	for (int i = 1; i <= n; i++) {
		if (vis[i] == 1) continue;
		dfs(i, x);
	}

	len -= g[prev][x]; vis[x] = 0; cnt--; return;
}



int main()
{
	cin >> n ;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			cin >> g[i][j];
		}
	}
	k = 1;
	for (int i = 1; i <= n; i++) {
		if (i == k) continue;
		dfs(i,k);
	}

	cout << ans << endl;

	return 0;
}
 

标签:旅行,cnt,蜗蜗,206,int,城市,len,问题,vis
From: https://www.cnblogs.com/itdef/p/18359412

相关文章

  • Spring Boot解决循环注入问题
    SpringBoot解决循环依赖注入问题代码问题回显启动错误日志解决方案:使用事件驱动或通过ApplicationContext手动获取Bean1.事件驱动设计2.使用`ApplicationContext`手动获取Bean3.拆分逻辑总结代码问题回显现有代码1在InterestService中依赖MemberInterest......
  • c语言中输入问题,scanf遇到空格就会停止输入
    一.问题描述:在c语言当中使用scanf进行输入字符串时,遇到空格会停止输入,如下面的例子。#include<stdio.h>intmain(){ chars[30]; scanf("%s",s); printf("%s",s); return0;}如下图可看出当输入“Helloworld!”时,从输出可以看出只能读入“Hello”。二.原因:在C......
  • 线上问题排查——磁盘满
    现象群里反馈管理后台登录不上了,我一访问,整个界面空白,没有提示,打开F12,发现控制台提示js、css等静态资源报net::ERR_HTTP2_PROTOCOL_ERROR,客户端可以下载到服务端资源,第一次碰到这个,StackOverflow走起net::ERR_HTTP2_PROTOCOL_ERROR是关于什么的?可能出现的问题非常多,包括......
  • 多模态大模型中的幻觉问题及其解决方案
    人工智能咨询培训老师叶梓转载标明出处多模态大模型在实际应用中面临着一个普遍的挑战——幻觉问题(hallucination),主要表现为模型在接收到用户提供的图像和提示时,可能会产生与图像内容不符的描述,例如错误地识别颜色、数量或位置等。这种误判可能对实际应用造成严重影响,如在自......
  • 【问题解决】git status中文文件名乱码
    问题复现解决办法在gitbash中直接执行如下命令gitconfig--globalcore.quotepathfalse原因通过gitconfig--help可以查看到以下内容:core.quotePathCommandsthatoutputpaths(e.g.ls-files,diff),willquote"unusual"charactersinthepathnamebyencl......
  • 【数值计算方法】常微分方程初值问题的数值解
    常微分方程初边值问题数值解第九章1.引言微分方程:含有未知函数及其导数或微分的等式;除了少数特殊类型的微分方程能用解析方法求得精确解外,多数情况找不到解的解析表达式本章研究两类常微分问题:一阶常微分方程的初值问题;两阶常微分方程边值问题一阶常微分方......
  • 【医疗器械质量管理体系GB/T42061-2022法规内容了解】
    国标GB/T42061等同于国际标准ISO13485(GB/T42061-2022 idt ISO13485:2016)4.1 组织要求  4.2文件要求  5、管理职责  6、资源管理  7、产品实现  8、测量,分析与改进 ......
  • 启动应用程序出现PCLXL.DLL找不到问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PCLXL.DLL文件(挑选合适的版本文件)把它放入......
  • 启动应用程序出现PdfPreviewHandler.dll找不到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PdfPreviewHandler.dll文件(挑选合适的版本......
  • 动态规划-不同路径问题
    本篇是动态规划算法题目介绍的第二篇,如果对其他题目感兴趣的话,可以前往动态规划_Yuan_Source的博客-CSDN博客不同路径Ⅰ一个机器人位于一个 mxn 网格的左上角。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?解题思路......