蓝桥杯2023年第十四届省赛真题-景区导游(暴力解)

本人水平有限,只写出来了一个暴力解能拿到一半的分数

#define  _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 1e4 + 10;
typedef pair<int, int>PII;
int n, k;
int ans;
int s[N];
//采用动态数组来建图,g[x],x是父节点,g[x]里存储和他相邻的节点
vector<PII>g[N];
map<PII, int>mp;//建立一个映射,也就是函数 PII像当与自变量x,int是因变量y

int dfs(int u,int x,int father,int v,int s1)//u起点,x是当前节点,v是终点,q1是当前节点的父节点,s是记数变量,当前走了多少
{
	if (x == v)
	{
		mp[{u,v}] = s1;//将得到的距离存在map映射里
		mp[{v, u}] = s1;//双向标记,因为要访问的节点是没有顺序的

		return 1;
	}
	for (int i = 0; i < g[x].size(); i++)
	{
		int son = g[x][i].first;//访问和他相邻的节点
		if (son == father)
		{
			continue;//,防止死循环
		}
		int w = g[x][i].second;
		if (dfs(u, son, x, v, s1 + w))return 1;
	}
	return 0;
}
void solve()
{
	for (int i &
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值