#THU20181B. 路径
路径
时间限制: 1.0 秒
空间限制: 512 MB
题目描述
为了帮助你理解题意,我们先定义函数 表示 在二进制表示下 的个数。例如 因为 的二进制表示为 ;而 因为 的二进制表示为 。
现在有一个 个点的图,第 个点的点权为 ,对于任意 有 条从 号点连向 号点的不同的有向边,其中 表示二进制下按位与的操作。显然这是一个有向无环图。
请你求出:有多少条不同的从 号点到 号点的路径。我们认为两条路径不同,当且仅当存在至少一条边,在其中一条路径中被经过,而在另一条路径中没有被经过。由于答案可能很大,你只需要输出答案对 取模的结果。
注:我们认为从 号点到 号点(即 的特殊情况)的不同路径有 条。
输入格式
从标准输入读入数据。
第一行一个整数 ,表示点的个数。
接下来一行 个整数,第 个整数表示第 个点的点权 。
输出格式
输出到标准输出。
一行一个整数表示答案对 取模的结果。
3
1 3 2
1
子任务
对于所有数据,保证 。
本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。
- 子任务 1(15 分):;
- 子任务 2(30 分):;
- 子任务 3(10 分):;
- 子任务 4(15 分):;
- 子任务 5(25 分):;
- 子任务 6(5 分):无特殊限制。