|
||||||||||
威威猫系列故事——因式分解Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 379 Accepted Submission(s): 110 Problem Description “春天来了,万物复苏,大地一片生机盎然,又到了动物们求偶的季节...” 周末的威威猫虽然眼睛盯着电视屏幕,但是思绪却停留在自己喜欢的数学问题上。 有人说孤独是可耻的,但是单身一人的威威猫并不孤独,随着对数学的深入学习,威威猫甚至很庆幸自己没有陷入儿女情长,因为他有喜爱的数学相伴,最近,他就在潜心研究因式分解问题。 在我们学习数学的过程中,经常需要把一个多项式进行因式分解,也就是把它写成乘积的形式,比如多项式x^2+3x+2分解因式的结果就是(x+1)(x+2)。这个因式一眼就能看出来,但是当x的指数更高时,就不太容易分解了。 现在,威威猫就是在研究如何编写程序来实现对多项式的因式分解。 Input 输入第一行是一个整数T(T<=50),表示测试数据的组数; 接下来是T行字符串表示T个测试用例,每行1个数学多项式,多项式长度不会超过100个字符,每个多项式表示形式如下: A[1]x^P[1]+A[2]x^P[2]+...+A[m]x^P[m] 其中0<=P[i]<=5,A[i]表示x^P[i]的系数,A[i]=0时直接简写为0,A[i]=1和-1时分别简写为x^P[i]与-x^P[i],P[i]=0和1时分别简写为A[i]与A[i]x,且同一指数r的对应项系数之和的绝对值不超过1000, 每行中没有多余空格,具体格式可参考Sample Input。 Output 对于每组测试数据,首先输出Case #X: ,X代表多项式编号,从1开始计数,然后输出因式分解的结果,分解结果的表示形式规定如下: (x+B[1])(x+B[2])...(x+B[m]) 其中,B[1]<=B[2]<=...<=B[m],若B[i]=0则不加括号直接简写为x,如果无法表现成上述格式,则输出"-1"。 具体可参考Sample Output。 Sample Input
Sample Output
Source | ||||||||||
|