首页 > 试题广场 >

旅行Ⅰ

[编程题]旅行Ⅰ
  • 热度指数:1316 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛妹出去旅行啦,她准备去个城市旅行,去每个城市的开销是元。但是牛妹有强迫症,她想在去y城市之前先旅游x城市,于是牛妹列出了这些限制条件list。并且牛妹很节约,她只有元,她每次会选择当前能去的花费最小的城市,如有多个花费一样的则首先去编号小的城市,她想知道她最多能到多少个城市去旅游。
示例1

输入

3,10,[3,7,8],[(1,2)]

输出

2

说明

先去1号城市再去2号城市,花费为 3+7=10 

备注:
城市编号1-N
A[0]代表1号城市的开销
A[1]代表2号城市的开销,以此类推

 , 

,代表去list[i].y城市之前要先去list[i].x城市
头像 牛客375959021号
发表于 2021-11-13 21:20:57
除了上面的条件还有一个条件是: 她每次会选择当前能去的花费最小的城市,如有多个花费一样的则首先去编号小的城市 所以先写一个函数(nextCity)可以实现目前可以去的城市里面花费最小且编号小的城市(ps 真抠。) 初始化如下两个数组: 数组city_can表示城市是否可以去 0表示可以去, 展开全文
头像 Maokt
发表于 2021-08-07 18:27:15
算法思想一:暴力法 解题思路: 对于求解本题牛妹最多能到多少个城市去旅游,我们可以直接模拟牛妹的访问过程,首先我们定义city,dp,flag数组,分别记录城市之间的次序关系,每个城市的前序访问和该城市有无被访问过。然后我们开始进行模拟访问,首先没有前序城市的城市进入队列,每次花费最小或 展开全文
头像 Tag_Kausal
发表于 2020-02-07 11:17:23
做法1:AC按照题意模拟即可,因为要每次选择可达中花费最小的且编号最小的,所以我们用一个优先队列维护拓扑就好,从优先队列中取出花费&编号最小的,然后把这座城市所影响的城市的度数--,我们会发现变为0的只可能是这次度数--的城市,那么只需要将在这次操作中城市度数变为0的城市加入优先队列,然后重 展开全文
头像 漫漫云天自翱翔
发表于 2021-08-12 21:17:27
NC522 旅行Ⅰ 题解一:优先队列,拓扑排序 题解思路:  首先,如果将list中限制条件构建成一个图。如图:  在去2号城市之前必须先去1号城市, 转换成有向图1--->2; 我们使用 vector<vector<int> > in 展开全文
头像 胡澳治
发表于 2021-12-09 14:42:00
题目分析 有N个城市,每个城市有编号(1~N)和消费额 所去城市有部分一对一先后顺序(设计拓扑排序) 在满足强迫症后的选择策略:(优先队列) 先考虑消费低的城市 再考虑城市编号更小的城市 我们可以把城市先后顺序用哈希表映射到集合来记录,表示要先去一个城市,才能去该城市对应的 展开全文
头像 一根笔
发表于 2022-08-10 15:44:26
/*  * function Point(a, b){  *   this.x = a || 0;  *   this.y =&n 展开全文
头像 佛系的华夫饼
发表于 2023-04-30 13:32:37
# class Point: # def __init__(self, a=0, b=0): # self.x = a # self.y = b # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param N 展开全文
头像 认认真真coding
发表于 2021-08-05 12:26:45
题目描述牛妹出去旅行啦,她准备去N个城市旅行,去每个城市的开销是Ai元。但是牛妹有强迫症,她想在去y城市之前先旅游x城市,于是牛妹列出了这些限制条件list。并且牛妹很节约,她只有V元,她每次会选择当前能去的花费最小的城市,如有多个花费一样的则首先去编号小的城市,她想知道她最多能到多少个城市去旅游。 展开全文
头像 胡澳治
发表于 2021-11-26 09:08:56
class Solution { public: struct status { int city; // 从0到n-1 int cost; // 花费 bool operator < (const status& a) cons 展开全文
头像 xqxls
发表于 2021-08-08 16:31:08
题意整理 给定N个城市,以及每个城市的开销。 一个前置城市数组,去y城市之前必须先去x城市。 牛妹手上有V元,她每次都会去开销最小的城市,如果开销相同,就选编号较小的城市,求牛妹最多能去几个城市。 方法一(优先队列+拓扑排序) 1.解题思路 首先明确一个事实,如果要去某个城市,那么他的前置城市一 展开全文

问题信息

难度:
2条回答 4040浏览

热门推荐

通过挑战的用户

查看代码