AT_mujin_pc_2017_a.Robot Racing

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你正在开发一种青蛙型机器人。你决定让这些机器人进行一场竞赛。

首先,你将 NN 台机器人放置在数轴上。机器人编号为 11 到 NN。现在,第 ii 个机器人位于坐标 xix_i。其中,所有 xix_i 都是整数,并且满足 0<x1<x2<...<xN0 < x_1 < x_2 < ... < x_N。

你会不断重复以下操作:

  • 从数轴上的机器人中选择一台。设选中的机器人的坐标为 xx。从 x−1x-1、x−2x-2 中没有其他机器人占据的位置选择一个作为着陆点。然后让选中的机器人跳到这个着陆点。

当某个机器人的坐标小于等于 00 时,认为它已经到达终点,并立即将其从数轴上移除。你需要不断进行操作,直到所有机器人都到达终点为止。

根据你的操作顺序,NN 台机器人到达终点的顺序可能有多种。请问 NN 台机器人最终到达终点的顺序有多少种不同的可能?请输出该数对 109+710^9+7 取模的结果。

输入格式

输入以如下格式由标准输入给出。

NN x1x_1 x2x_2 ... xNx_N

输出格式

输出 NN 台机器人到达终点的可能顺序数,对 109+710^9+7 取模的结果。

输入输出样例

  • 输入#1

    3
    1 2 3

    输出#1

    4
  • 输入#2

    3
    2 3 4

    输出#2

    6
  • 输入#3

    8
    1 2 3 5 7 11 13 17

    输出#3

    10080
  • 输入#4

    13
    4 6 8 9 10 12 14 15 16 18 20 21 22

    输出#4

    311014372

说明/提示

约束

  • 2≤N≤1052 \leq N \leq 10^5
  • xix_i 是整数
  • 0<x1<x2<...<xN≤1090 < x_1 < x_2 < ... < x_N \leq 10^9

部分分数

  • 有 500500 分的测试点满足 N≤8N \leq 8

样例解释 1

33 台机器人到达终点的顺序,共有如下 44 种可能:

  • (机器人 1→机器人 2→机器人 3)(机器人\ 1 \to 机器人\ 2 \to 机器人\ 3)
  • (机器人 1→机器人 3→机器人 2)(机器人\ 1 \to 机器人\ 3 \to 机器人\ 2)
  • (机器人 2→机器人 1→机器人 3)(机器人\ 2 \to 机器人\ 1 \to 机器人\ 3)
  • (机器人 2→机器人 3→机器人 1)(机器人\ 2 \to 机器人\ 3 \to 机器人\ 1)

样例解释 2

33 台机器人到达终点的顺序,共有如下 66 种可能:

  • (机器人 1→机器人 2→机器人 3)(机器人\ 1 \to 机器人\ 2 \to 机器人\ 3)
  • (机器人 1→机器人 3→机器人 2)(机器人\ 1 \to 机器人\ 3 \to 机器人\ 2)
  • (机器人 2→机器人 1→机器人 3)(机器人\ 2 \to 机器人\ 1 \to 机器人\ 3)
  • (机器人 2→机器人 3→机器人 1)(机器人\ 2 \to 机器人\ 3 \to 机器人\ 1)
  • (机器人 3→机器人 1→机器人 2)(机器人\ 3 \to 机器人\ 1 \to 机器人\ 2)
  • (机器人 3→机器人 2→机器人 1)(机器人\ 3 \to 机器人\ 2 \to 机器人\ 1)

例如,按照下图的操作顺序,可以得到 (机器人 3→机器人 2→机器人 1)(机器人\ 3 \to 机器人\ 2 \to 机器人\ 1) 的达终顺序。

样例解释 4

请输出答案对 109+710^9+7 取余的结果。此用例不在部分分数的测试数据范围内。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页