CFCF2195F.Parabola Independence
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定 n 个二次函数 F={f1,f2,…,fn},其中 fi(x)=aix2+bix+ci。
如果对于所有 x∈R,都有 f(x)=g(x),那么称函数 f 和 g 互为独立。
同样地,如果集合 G={g1,g2,…,gk} 中任意一对不同的函数 gi 和 gj 都互为独立(即对于 1≤i<j≤∣G∣,都有 gi(x)=gj(x) 对任意 x∈R 成立),那么称集合 G 是有组织的。
对于每个 i=1,2,…,n,请你求出包含 fi 的最大的有组织子集的大小。
输入格式
每个测试点包含多组测试数据。第一行输入测试用例数 t(1≤t≤104)。接下来是每组测试数据。
每组数据的第一行输入一个整数 n(1≤n≤3000)。
接下来的 n 行,每行输入三个整数 ai、bi、ci,表示函数 fi(−106≤ai,bi,ci≤106,且 ai=0)。
保证每组数据中的函数两两不同。
保证所有测试用例的 n2 之和不超过 30002。
输出格式
对于每组测试数据,输出 n 个正整数 s1,s2,…,sn,其中 si 表示包含 fi 的最大的有组织子集的大小。
输入输出样例
输入#1
3 4 1 2 -1 -3 0 -3 -1 4 -5 1 2 -4 5 3 0 0 1 0 -5 -3 0 0 -1 0 10 1 0 -10 5 884 -667 497 680 -973 213 23 -548 -412 826 359 -333 773 212 218
输出#1
3 2 3 3 3 3 2 2 3 3 3 3 1 2
说明/提示
在第一个测试用例中,函数如下:
- f1(x)=x2+2x−1;
- f2(x)=−3x2−3;
- f3(x)=−x2+4x−5;
- f4(x)=x2+2x−4。
它们的图像如下所示:

各个包含指定函数的最大有组织子集如下:
- {f1,f3,f4} 是包含 f1 的最大有组织子集;
- {f1,f2} 是包含 f2 的最大有组织子集;
- {f1,f3,f4} 是包含 f3 的最大有组织子集;
- {f1,f3,f4} 是包含 f4 的最大有组织子集。