CF2143D2.Inversion Graph Coloring (Hard Version)
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的困难版本。与其它版本的区别在于本版本中 n≤2000。只有在你解出了所有版本之后才可以进行 Hack。
我们称一个序列 b1,b2,…,bk 是“好”的,如果存在一种对每个下标 i 染为红色或蓝色的方式,使得对于每对满足 i<j 且 bi>bj 的下标 i,j,i 和 j 的颜色不同。
给定一个序列 a1,a2,…,an,请你计算它的“好”子序列的数量,包括空子序列 ∗。由于答案可能非常大,请输出答案对 109+7 取模的结果。
∗ 如果序列 b 能由序列 a 通过删除若干(可能为零或全体)元素且保持原有顺序得到,则称 b 是 a 的一个子序列。
输入格式
每组测试数据包含多组测试用例。第一行输入一个整数 t(1≤t≤100),表示测试用例的组数。
每组测试用例的第一行输入一个整数 n(1≤n≤2000),表示序列的长度。
第二行输入 n 个整数 a1,a2,…,an(1≤ai≤n),表示序列中的元素。
保证所有测试用例中 n 的总和不超过 2000。
输出格式
对于每组测试用例,输出一行一个整数,表示该序列“好”子序列的数量,对 109+7 取模。
输入输出样例
输入#1
4 4 4 2 3 1 7 7 6 1 2 3 3 2 5 1 1 1 1 1 11 7 2 1 9 7 3 4 1 3 5 3
输出#1
13 73 32 619
说明/提示
在第一个测试用例中,不是“好”的子序列有 [4,3,1]、[4,2,1] 和 [4,2,3,1]。由于总共有 16 个子序列,所以“好”的子序列数量为 16−3=13。
在第三个测试用例中,所有子序列都是“好”的。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?