晓君c++ 2024-04-13 13:53 采纳率: 70%
浏览 27
已结题

小明回老家c++求解

题目描述
清明节,又称祭祖节,在每年4月4日至6日之间,是祭祀、祭祖和扫墓的节日。小明的爸爸妈妈决定清明假期带着他回老家扫墓。小明的爸爸一共要开车行驶 1000 千米才能到家,现在沿途有N个旅馆,为了安全起见,每天晚上都不开车,住在旅馆里(晚上不可以睡车里)。聪明的小明已经提前用地图查找好了每个旅馆的位置,并用离起点的距离来标识
回家路途漫漫,要求每天至少行驶 A 公里,但是为了安全起见,要求每天最多只能行驶 B 公里。小明想知道一共有多少种回家方案。
输入格式
第一行输入一个整数 A,第二行输入一个整数 B第三行输入一个整数 表示沿途有N个旅馆,接下来
N 行,每行一个整数 s,表示旅馆离起点的距离0<s<1000。注意:没有任意两个旅馆在同一位置。
输出格式
输出一共有多少种回家方案。(数据保证一定有至少一种回家方案,不用担心小明回不去了)
样例
Input 1
200
500
4
100
420
640
790
Output 1
2
样例解释
对于样例:
方案一:第一天到达位置420的旅馆,第二天到达位置640的旅馆,第三天到达目的地
方案二:第一天到达位置420的旅馆,第二天到达位置790的旅馆,第三天到达目的地

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-04-13 13:53
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    思路:贪心+暴力枚举 因为要求至少行驶 A 公里,所以我们首先可以遍历一遍旅馆的位置,如果第一个旅馆到出发点的距离小于 A,或者最后一个旅馆到终点的距离小于 A,那么这个问题就无解,直接返回 0。 然后按照旅馆离出发点的位置从小到大排序,然后根据每个旅馆最远只能走 B 公里的限制,贪心地计算出能够在每个旅馆处停留的最远距离 r,即最远停留距离要么是到下一个旅馆的距离,要么是 B(如果下一个旅馆与当前旅馆之间的距离小于 B,则停留在下一个旅馆)。 之后可以使用 DFS 枚举所有的路径,具体的实现可以参考如下代码: C++ 代码
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月13日