C++ Pat甲级1003 Emergency (25 分)图+dfs

2023-11-05

1003 Emergency (25 分)

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, C​1​​ and 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

输入:

第一行:n座城市,m条路,从c1走到c2

第二行n个数 :每座城市的救援队数目

接下来有m行 :每行三个字符 ,表示每条路的 起始,终点,长度

输出两个数:从c1到c2不同的最短路径的条数,  可以集齐的最多的救援队数目

 

#include <cstdio>
#include <cstdlib>
#include <climits>
#include <iostream>
using namespace std;
const int MAX = 501;

int wei[MAX],visit[MAX],map[MAX][MAX];

int mind,cnt,maxt,n;
//初始化图
void init(int n) { //初始化n座城市没被访问过,已经他们之间的距离为Max
	int i,j;
	for(i = 0; i < n; ++i) {
		visit[i] = 0;
		for(j = 0; j < n; ++j) {
			map[i][j] = INT_MAX;
		}
	}
}

void dfs(int st,const int end,int dist,int weit) {
	if(st == end) { //出口
		if(dist < mind) { //若当前距离小于最短距离
			cnt = 1;
			mind=dist; //更新最短距离
			maxt = weit;//更新最多的救援队数目
		} else if(dist == mind) {  //若当前距离等于最短距离
			++cnt; //更新不同的最短距离数目
			if(maxt < weit) {
				maxt = weit;//更新最多的救援队数目
			}
		}
		return;
	}
	//若当前距离大于最短距离, 
	if(dist > mind) return;//这个地方不剪枝的话最后一个case过不去
	int i;
	for(i=0; i<n; ++i) {
		if(visit[i]==0 && map[st][i]!=INT_MAX) {
			visit[i] = 1;
			dfs(i,end,dist+map[st][i],weit+wei[i]);
			visit[i] = 0;
		}
	}

}

int main() {
	int m,st,end,x,y,d,i;
	mind = INT_MAX;
	cnt = 0;
	cin >> n >> m >> st >> end;

	init(n);
	for(i=0; i<n; ++i) {
		cin >> wei[i];//救援队数目
	}
	while(m--) {
		cin >> x >> y >>d; //输入每条路的权
		if(map[x][y]>d) {
			map[x][y] = map[y][x] = d;
		}
	}
	dfs(st,end,0,wei[st]);//初试距离为0
	cout << cnt <<" "<< maxt;
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ Pat甲级1003 Emergency (25 分)图+dfs 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • jsp+servlet简单实现上传文件

    效果 1 jsp前端
  • Wireshark数据抓包分析之传输层协议(TCP协议)

    目录 预备知识 1 TCP协议的由来 2 TCP端口 3 TCP三次握手 3 1 第一次握手 3 2 第二次握手 3 3 第三次握手 4 TCP四次断开 5 TCP重置 实验目的 实验环境 实验步骤一 1 配置服务器端 2 配置客户端 3
  • 微信小程序web-view使用说明,及链接打不开问题

    开发微信小程序时 有时会需要在小程序内打开网页链接 这时就需要用到 web view 标签 web view 是小程序上用来承载网页的容器 且每个页面只能有一个 web view 它会自动铺满整个页面 并覆盖其他组件 目前个人类型的小程序上
  • Requests入门

    前言 爬虫三大库 Requests Lxml BeautifulSoup Requests库的官方文档指出 让HTTP服务于人类 Requests库的作用就是请求网站获取网页数据的 今天我们来了解一下Requests库 如果感觉博主的文章还
  • 最新最全GPT-3模型网络结构详细解析

    最近 GPT3很火 现在有很多讲GPT 3的文章 比如讲解它可以做什么 思考它的带来的影响 可视化其工作方式 看了这些文章并不足以详细了解GPT 3模型 仍然需要认真研究相关论文和博客 因此 本文主要目标 帮助其他人对GPT 3体系结构有一
  • 放炮罚计算器软件

    放炮罚计算器软件 放炮罚 又称为百胡 红胡 告胡子 跑胡子 煨胡子 是湖南人喜欢的一种字牌娱乐活动 据说起源于双峰 又称为双峰跑胡子 放炮罚由于其灵活多变 惊险刺激 而广受湖南人民的喜爱 街头巷尾随处可见在玩放炮罚的广大兄弟姐妹 这种字牌游
  • Linux进程之调度器

    1 Linux调度器的原理 Linux调度器 Linux Scheduler 负责管理这一进程在CPU上运行时的资源分配 它根据选定策略和所估算的进程行为 考量各种因素的权重 对等待在运行队列的进程按优先级排列 从而决定哪个进程能够接下来获
  • base64加密解密

    String random UUID randomUUID toString replaceAll substring 0 8 随机八位数字字母结合字符串 System out println random 2458ec59 String
  • 期货开户收费政策非常合理

    需要大家支付的费用由两部分组成 一部分是保证金 另一部分是费率 保证金和费率都由交易所收取 收取的费用是固定的 因为后期大家投资的项目是不一样的 所以需要大家准备的费用肯定也不一样 除了交易所所收取的费用以外 还包括了开户公司所收取的费用
  • 51单片机原理图

    51单片机 TOC
  • ANDROID APP的页面布局(Part I)

    做一个好的APP自然是不能缺少一个好的漂亮的且合理的页面布局了 ANDORID里面支持的布局大致上有下列即种 根据界面的需要使用不同的布局可达到事半功倍的效果 这个跟做HMTL的页面的原理是一样 好的页面看起来就是舒服 而且容易维护 1 L
  • Lambda表达式与函数式编程

    文章目录 函数式编程 Stream流 概述 为什么学 函数式编程思想 Lambda表达式 概述 Lambda表达式的前身 省略规则 Stream流 概述 案例数据准备 创建流 中间操作 终结操作 reduce归并 注意事项 Optional
  • C语言运算符优先级(超详细)

    转自 http blog csdn net huangblog article details 8271791 每当想找哪个运算符优先级高时 很多时候总是想找的就没有 真让人气愤 现在 终于有个我个人觉得非常全的 分享给大家 欢迎拍砖 C语
  • 前端开发面试题及答案整理(合集)

    前端开发面试题及答案 1 对Web标准以及W3C的理解与认识 答 标签闭合 标签小写 不乱嵌套 提高搜索机器人搜索几率 使用外链CSS和JS脚本 结构行为表现的分离 文件下载与页面速度更快 内容能被更多的用户所访问 内容能被更广泛的设备所访
  • Qt 助手 assistant 单独运行 及 字体设置

    曾经在 Qt creator上 不知道点击了哪里 Qt 助手也是可以单独运行的 这样就可以不需要安装字体了 但是 一直没有找到这个重现的规则 或者快捷键 1 运行Qt 助手 assistant linux 所在目录 xxxxxx Qt5 1
  • java调用 Myeclipse用jax-ws创建的webservice具体方法(三)

    首先需要下载所需的jar包 webservices所需全部jar包下载 点击打开链接 直接上代码 import java net MalformedURLException import java net URL import java r
  • 基于亚奈奎斯特采样和SOMP算法的平板脉冲响应空间插值matlab仿真

    目录 1 算法运行效果图预览 2 算法运行软件版本 3 部分核心程序 4 算法理论概述 5 算法完整程序工程 1 算法运行效果图预览 2 算法运行软件版本 matlab2022a 3 部分核心程序 fine regular grid NSa
  • Could not resolve placeholder 'jdbc.driverClassName' in string value "${jdbc.driverClassName}

    org springframework beans factory BeanDefinitionStoreException Invalid bean definition with name dataSource defined in f
  • $.ajaxFileUpload上传文件出现错误...问题总结

    1 加载报错 ajaxfileupload js 1 Uncaught ReferenceError jQuery is not defined 上传报错 Uncaught TypeError ajaxFileUpload is not a
  • C++ Pat甲级1003 Emergency (25 分)图+dfs

    1003 Emergency 25 分 As an emergency rescue team leader of a city you are given a special map of your country The map sho