PAT 1003 Emergency

本文介绍了一种使用深度优先搜索(DFS)算法解决城市间紧急救援路线规划与资源调度的问题。通过遍历地图上的城市和道路,寻找从当前城市到目标城市的最短路径,并在最短路径上尽可能多地召集救援队伍。该方法适用于数据量较小的情况,通过剪枝策略提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

As an emergency rescue team leader of a city, you are given a special map of your country.
The map shows several scattered cities connected by some roads.
Amount of rescue teams in each city and the length of each road between any pair of cities are marked on the map.
When there is an emergency call to you from some other city,
your job is to lead your men to the place as quickly as possible,
and at the mean time, call up as many hands on the way as possible.

Input Specification:

Each input file contains one test case. For each test case, the first line contains 4 positive integers: N (≤500) - the number of cities (and the cities are numbered from 0 to N−1), M - the number of roads, C1and C​2 the cities that you are currently in and that you must save, respectively. The next line contains N integers, where the i-th integer is the number of rescue teams in the i-th city. Then M lines follow, each describes a road with three integers c​1, c​2 and L, which are the pair of cities connected by a road and the length of that road, respectively. It is guaranteed that there exists at least one path from C​1 to C​2.

Output Specification:

For each test case, print in one line two numbers: the number of different shortest paths between C​1 and C​2, and the maximum amount of rescue teams you can possibly gather. All the numbers in a line must be separated by exactly one space, and there is no extra space allowed at the end of a line.

Sample Input:

5 6 0 2
1 2 1 5 3
0 1 1
0 2 2
0 3 1
1 2 1
2 4 1
3 4 1

Sample Output:

2 4

解答:

简单的说,就是只使用dfs来遍历整张图,从而获得最短路的条数和在最短路的条件下可以召集到的最多的人手 。当然直接dfs是有风险的,但是这道题的数据量告诉我们可以瞎搞,所以dfs加简单的剪枝就足以解决问题。
易错点:当最小路径发生变化之后,对于原来获得数据都要进行重新的统计。

代码:

#include<iostream>
#include<cstdio>
using namespace std;

int val[505][505]={0},vis[505]={0};
int c1,c2,n,m,rec[505],road=0,mins=0x7fffffff,maxs=0;

void dfs(int x,int res,int res1){
    if(res>mins) return;
    if(x==c2&&res<=mins) {//这个地方其实写的太啰嗦,可以合并掉,另外注意不要有多余的输出,血的教训!!!
        if(res<mins) maxs = res1;
        else maxs=(maxs<res1?res1:maxs);
        if(res<mins)road=1;
        else road++;
        mins=res;
        return;
    }
    for(int i=0;i<n;++i){
        if(!vis[i]&&val[x][i]){
            vis[i] = 1;
            dfs(i,res+val[x][i],res1+rec[i]);
            vis[i] = 0;
        }
    }
}

int main(){
    scanf("%d%d%d%d",&n,&m,&c1,&c2);
    for(int i=0;i<n;++i) scanf("%d",&rec[i]);
    for(int i=0;i<m;++i) {
        int f,t,v;
        scanf("%d%d%d",&f,&t,&v);
        val[t][f] = v;
        val[f][t] = v;
    }
    vis[c1] = 1;
    dfs(c1,0,rec[c1]);
    printf("%d %d\n",road,maxs);
    return 0;
}
安卓期末大作业—Android图书管理应用源代码(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—And
本文以电动汽车销售策略为研究对象,综合运用层次分析法、决策树、皮尔逊相关性分析、BP神经网络及粒子群优化等多种方法,深入探讨了影响目标客户购买电动汽车的因素及相应的销售策略。研究结果显示,客户对合资品牌电动汽车的满意度为78.0887,对自主品牌的满意度为77.7654,对新势力品牌的满意度为77.0078。此外,研究还发现电池性能、经济性、城市居住年限、居住区域、工作单位、职务、家庭年收入、个人年收入、家庭可支配收入、房贷占比、车贷占比等因素对电动汽车销量存在显著影响。通过BP神经网络对目标客户的购买意愿进行预测,其预测数据拟合程度超过80%,且与真实情况高度接近。基于研究结果,本文为销售部门提出了提高销量的建议,包括精准定位尚未购买电动汽车的目标客户群体,制定并实施更具针对性的销售策略,在服务难度提升不超过5%的前提下,选择实施最具可行性和针对性的销售方案。 在研究过程中,层次分析法被用于对目标客户购买电动汽车的影响因素进行系统分析与评价;决策树模型则用于对缺失数据进行预测填充,以确保数据的完整性和准确性;BP神经网络用于预测目标客户的购买意愿,并对其预测效果进行评估;粒子群优化算法对BP神经网络模型进行优化,有效提升了模型的稳定性和预测能力;皮尔逊相关性分析用于探究不同因素与购买意愿之间的相关性。通过这些方法的综合运用,本文不仅揭示了影响电动汽车销量的关键因素,还为销售策略的优化提供了科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值