AT_agc030_f.[AGC030F] Permutation and Minimum
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个长度为 2N 的数列 A1, A2, ..., A2N。每个 Ai 要么等于 −1,要么是 1 到 2N 之间的整数。除了 −1 以外,任意整数在 Ai 中最多只出现一次。
すぬけ君会将所有 Ai=−1 的位置,分别替换成 1 到 2N 的整数,使得最终的 Ai 恰好是 1,2,…,2N 的一个排列。然后,他会构造一个长度为 N 的数列 B1, B2, ..., BN,其中 Bi=min(A2i−1, A2i)。
请你求出,所有可能的 B1, B2, ..., BN 的不同取值的个数,并对 109+7 取模。
输入格式
输入从标准输入读入,格式如下:
N A1 A2 … A2N
输出格式
输出所有可能的 B1, B2, ..., BN 的不同取值的个数,对 109+7 取模。
输入输出样例
输入#1
3 1 -1 -1 3 6 -1
输出#1
5
输入#2
4 7 1 8 3 5 2 6 4
输出#2
1
输入#3
10 7 -1 -1 -1 -1 -1 -1 6 14 12 13 -1 15 -1 -1 -1 -1 20 -1 -1
输出#3
9540576
输入#4
20 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 6 -1 -1 -1 -1 -1 7 -1 -1 -1 -1 -1 -1 -1 -1 -1 34 -1 -1 -1 -1 31 -1 -1 -1 -1 -1 -1 -1 -1
输出#4
374984201
说明/提示
约束条件
- 1≤N≤300
- Ai=−1 或 1≤Ai≤2N
- 如果 Ai=−1 且 Aj=−1,则 Ai=Aj(i=j)
样例解释 1
将 Ai 补全为 1,2,…,2N 的排列的方法有 6 种,对于每种情况,Bi 如下:
- (A1,A2,A3,A4,A5,A6)=(1,2,4,3,6,5):(B1,B2,B3)=(1,3,5)
- (A1,A2,A3,A4,A5,A6)=(1,2,5,3,6,4):(B1,B2,B3)=(1,3,4)
- (A1,A2,A3,A4,A5,A6)=(1,4,2,3,6,5):(B1,B2,B3)=(1,2,5)
- (A1,A2,A3,A4,A5,A6)=(1,4,5,3,6,2):(B1,B2,B3)=(1,3,2)
- (A1,A2,A3,A4,A5,A6)=(1,5,2,3,6,4):(B1,B2,B3)=(1,2,4)
- (A1,A2,A3,A4,A5,A6)=(1,5,4,3,6,2):(B1,B2,B3)=(1,3,2)
因此,不同的 (B1,B2,B3) 有 5 种。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?