AT_nomura2020_f.Sorting Game

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

高桥君和雪君想出了一个使用数列的游戏,规则如下:

  • 准备一个长度为 $ M $ 的数列 $ a\ =\ a_1,\ a_2,\ \ldots,\ a_M $,由介于 $ 0 $ 和 $ 2^N-1 $ 之间的整数构成。

  • 首先,雪君可以进行以下操作任意次:

    • 选择一个正整数 $ d $,对于所有的 $ i~(1\ \leq\ i\ \leq\ M) $,将 $ a_i $ 用二进制表示时的第 $ d $ 位(最低位为第 $ 1 $ 位)变为 $ 0 $。
  • 在雪君的所有操作结束后,高桥君可以进行以下操作任意次,目标是使 $ a $ 升序排列。这里,序列 $ a $ 是升序的,当且仅当对于任意 $ i\ ~\ (1\ \leq\ i\ \leq\ M\ -\ 1) $,都有 $ a_i\ \leq\ a_{i\ +\ 1} $。

    • 选择序列 $ a $ 中相邻的两个元素 $ a_i,\ a_{i\ +\ 1} $,如果 $ a_i $ 和 $ a_{i\ +\ 1} $ 用二进制表示时恰好有一位不同,则交换 $ a_i $ 和 $ a_{i\ +\ 1} $。

可以用于游戏的、由介于 $ 0 $ 和 $ 2^N-1 $ 之间的整数构成且长度为 $ M $ 的序列共有 $ 2^{NM} $ 个。

其中,有多少个序列满足:在游戏中使用时,无论雪君如何进行操作,高桥君都能通过适当的操作将序列升序排列?请输出答案对 $ 10^9\ +\ 7 $ 取模的结果。

输入格式

输入以以下格式从标准输入给出:

$ N $ $ M $

输出格式

输出满足条件的序列个数对 $ 10^9\ +\ 7 $ 取模的结果。条件为:在游戏中使用时,无论雪君如何进行操作,高桥君都能通过适当的操作将序列升序排列。

输入输出样例

  • 输入#1

    2 5

    输出#1

    352
  • 输入#2

    2020 530

    输出#2

    823277409

说明/提示

约束条件

  • 输入均为整数。
  • $ 1\ \leq\ N\ \leq\ 5000 $
  • $ 2\ \leq\ M\ \leq\ 5000 $

样例解释 1

例如,考虑序列 $ a\ =\ 1,\ 3,\ 1,\ 3,\ 1 $。此时:

  • 将各元素的第 $ 1 $ 位变为 $ 0 $,则 $ a $ 变为 $ 0,\ 2,\ 0,\ 2,\ 0 $;
  • 将各元素的第 $ 2 $ 位变为 $ 0 $,则 $ a $ 变为 $ 1,\ 1,\ 1,\ 1,\ 1 $;
  • 将各元素的第 $ 1 $ 位和第 $ 2 $ 位都变为 $ 0 $,则 $ a $ 变为 $ 0,\ 0,\ 0,\ 0,\ 0 $。

包括雪君不进行操作而 $ a $ 不变的情况,在每种情况下,高桥君都可以通过重复交换二进制表示恰好有一位不同的相邻元素,将序列升序排列。

因此,这个序列是满足条件的序列之一。

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

首页