蓝桥杯练习系统(算法训练)ALGO-954 逗志芃的暴走

资源限制

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s

问题描述

逗志芃是有妹子的现充,但是有时候妹子就是烦恼。因为逗志芃太逗了,所以这段时间妹子对逗志芃发动了技能无理取闹,妹子要去玩很多的景点。由于逗志芃之前抽机花费了太多的时间,不久以后又要微积分考试了,所以现在被妹子搞成暴走状态了。但是妹子永远是上帝,所以逗志芃只能带妹子出去玩,不过为了节约时间,他希望找到一条花费时间最少的一次性游览线路。

输入格式

第一行1个数n,表示逗志芃所在的城市有多少个景点,接下来是一个n*n的矩阵。a(i,j)表示i号景点到j号景点的路上花费的时间是多少。

接下来是一个数m,表示逗志芃妹子要去去的景点数目。由于妹子在无理取闹,所以可能会有重复的景点,不过只要去一次就可以了。接下来是m个数,就是妹子要去的景点编号。

输出格式

一个数,最少的花费时间。

样例输入

3

0 1 2

1 0 3

2 3 0

3

2 3 1

样例输出

3

数据规模和约定

0<n<=30,0<m<=20,时间<=1000000

cpp 复制代码
#include<iostream>
#include<math.h>
#include<cstring>
using namespace std;
const int N=35;
int mp[N][N];
int visit[N];//妹妹要去的景点
bool vis[N];//已访问的景点 
int ans=0x3f3f3f3f;
int cnt=0;//实际的景点数
int n;//n个点
//深度遍历求游览计划的最短时间 
void dfs(int pos,int count,int sum){//pos为当前的景点,count为已访问的景点数,sum为时间 
	if(count==cnt){
		ans=min(ans,sum);
		return;
	}
	
	for(int i=1;i<=n;i++){
		if(visit[i]&&!vis[i]&&sum<ans){
			vis[i]=true;
			mp[0][i]=0;
			dfs(i,count+1,sum+mp[pos][i]);
			vis[i]=false;
		}
	}
} 
int main(){ 
	cin>>n;
	memset(mp,0x3f,sizeof(mp));
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>mp[i][j]; 
		}
	} 
	int m;//要去的景点数 
	cin>>m;
	for(int i=1;i<=m;i++){
		int x;
		cin>>x;
		if(visit[x]==0) cnt++;
		visit[x]=1;
	} 
	
	for(int k=1;k<=n;k++){//通过点k中转 
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i!=j&&i!=k&&k!=j&&mp[i][j]>mp[i][k]+mp[k][j]){
					mp[i][j]=mp[i][k]+mp[k][j];
				}
			}
		} 
	}
	dfs(0,0,0);

	cout<<ans<<endl;
	return 0;
}

思路:先使用Floyed算法求每个点之间的最短时间,然后用dfs将访问景点的顺序进行全排列(即遍历每一种情况)

相关推荐
生成论实验室5 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
风筝在晴天搁浅34 分钟前
字节高频题 小于n的最大数
算法
LabVIEW开发36 分钟前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序
AI科技星42 分钟前
科幻艺术书本封面:《全域数学》第一部·数术本源 第三卷 代数原本(P95-141)完整五级目录【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
风筝在晴天搁浅44 分钟前
LeetCode 92.反转链表Ⅱ
算法·leetcode·链表
王老师青少年编程1 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii
V搜xhliang02461 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
汉克老师2 小时前
GESP2025年3月认证C++五级( 第三部分编程题(2、原根判断))
c++·算法·模运算·gesp5级·gesp五级·原根·分解质因数
数据皮皮侠2 小时前
上市公司创新韧性数据(2000-2024)|顶刊同款 EIR 指数
大数据·人工智能·算法·智慧城市·制造
WL_Aurora2 小时前
Python 算法基础篇之链表
python·算法·链表