CFCF2159C.Twin Polynomials
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
一个多项式 f(x)=a0+a1x+a2x2+…+anxn 当且仅当对于所有 0≤i≤n,ai 都是非负整数且 an=0 时,被称为一个合法的 n 次多项式。
对于一个 n 次合法多项式 f(x)=a0+a1x+a2x2+…+anxn,其“孪生多项式” g(x) 定义如下:
g(x)=i=0∑ni⋅xai
例如,对于 f(x)=1+2x+2x3,其孪生多项式为:
g(x)=0⋅x1+1⋅x2+2⋅x0+3⋅x2=0+x2+2+3x2=2+4x2
一个 n 次合法多项式 f(x) 被称为“cool”,当且仅当 f(x)=g(x)。换句话说,f(x) 的孪生多项式恰好等于它自身时,该多项式是 cool 的。
你现在有一个不完整的 n 次合法多项式 f(x)=a0+a1x+a2x2+…+anxn,其中部分 ai 的值已知,部分未知。此外,保证 a0 和 an 的值均未知。
请你统计,所有可能填补未知项 ai 的方式中,使得该多项式成为 cool 多项式的合法 n 次多项式的个数。由于答案可能很大,请输出对 1000000007 取模的结果。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
对于每组测试用例,第一行包含一个整数 n(1≤n≤4×105)。
第二行包含 n+1 个整数 a0,a1,…,an(−1≤ai≤109)。其中,ai=−1 表示该项的值未知,ai=−1 表示该项的值已知。
保证输入中 a0 和 an 始终为 −1。
保证所有测试用例中 n 的总和不超过 4×105。
输出格式
对于每组测试用例,输出通过确定所有未知 ai 后能得到的 cool 合法 n 次多项式的个数,对 1000000007 取模。
输入输出样例
输入#1
6 1 -1 -1 2 -1 2 -1 2 -1 -1 -1 3 -1 -1 3 -1 3 -1 2 3 -1 5 -1 -1 -1 1 0 -1
输出#1
1 1 3 2 0 3
说明/提示
在第一个测试用例中,只有 f(x)=x 满足条件。
在第二个测试用例中,只有 f(x)=x2+2x 满足条件。
在第三个测试用例中,f(x)=2x2+x、f(x)=x2+2x 和 f(x)=2x2+1 满足条件。