求解站外题
  • 板块学术版
  • 楼主lmy_2011
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/12/25 09:19
  • 上次更新2023/10/24 06:42:29
查看原帖
求解站外题
662413
lmy_2011楼主2022/12/25 09:19

题目描述

小浩有一串长度为 NN 的序列 AA 。该序列是一个 1n1 \sim n 的特殊排列,即在位置 ii 的数 AiA_i 不等于 ii 且数字不重复。

但小浩的朋友小鹏,因为被小浩惹生气了,所以他把序列 AA 中的一些数字改成了 1-1

现在,小浩用 11nn 里的数 替换所有的 1-1,一共有多少种构造方案能构造回一个 1n1 - n 的特殊排列。

输入格式

第一行包含整数 N(2n2000)N(2\leqslant n \leqslant 2000)

在第二行中,有 NN 个整数,表示小鹏修改之后的序列 AA

输入保证 AiA_i 不等于 ii,给定的序列至少包含两个数字 1-1,且每个正数最多在序列中出现一次,它保证至少有一个特殊排列。

输出格式

输出一个整数,即小浩有多少种方案把它恢复为特殊排列,若没有 1-1,输出 00。答案对 1000000007(109+7)1000000007 (10^9+7) 取模。

样例 #1

样例输入 #1

5
-1 -1 4 3 -1

样例输出 #1

2

提示

对于样例,只有 [2,5,4,3,1][2,5,4,3,1][5,1,4,3,2][5,1,4,3,2] 满足条件。

2022/12/25 09:19
加载中...