#P1641. Rational Approximation

    ID: 642 远端评测题 1000ms 10MiB 尝试: 1 已通过: 0 难度: 6 上传者: 标签>线性代数线性规划East Central North America 2000

Rational Approximation

本题没有可用的提交语言。

#P1641. 有理逼近
ID: 642
远端评测题
1000ms
10MiB
难度: 6

描述

一个nn次多项式p(x)p(x)可通过将其系数与函数f(x)f(x)x=0x=0处展开的幂级数的前nn个系数匹配,来逼近f(x)f(x)。例如,

11x1+x+x2++xn.\frac{1}{1-x} \approx 1 + x + x^2 + \dots + x^n.

遗憾的是,多项式虽然“良好”,但在逼近行为不佳的函数(如具有奇点的函数)时效果不佳。为解决这一问题,我们可改用形如p(x)/q(x)p(x)/q(x)的有理函数逼近,其中p(x)p(x)q(x)q(x)均为多项式。Approximate Calculation Machinery公司请你解决此问题,以便将你的方案集成到他们的近似计算软件中。

给定mmnn以及f(x)f(x)幂级数展开的前m+nm+n个系数,我们希望计算两个多项式p(x)p(x)q(x)q(x),其次数分别不超过m1m-1n1n-1,使得q(x)f(x)p(x)q(x) \cdot f(x) - p(x)的幂级数展开中,前m+n1m+n-1项的系数为00,且xm+n1x^{m+n-1}项的系数为11。即,我们需要找到p(x)p(x)q(x)q(x)使得:

q(x)f(x)p(x)=xm+n1+q(x) \cdot f(x) - p(x) = x^{m+n-1} + \dots

其中\dots包含次数高于m+n1m+n-1的项。由此,f(x)f(x)可被p(x)/q(x)p(x)/q(x)逼近。

背景定义

  • nn次多项式p(x)p(x)可表示为p0+p1x+p2x2++pnxnp_0 + p_1x + p_2x^2 + \dots + p_nx^n,本题中pip_i为整数。
  • f(x)f(x)00处的幂级数展开可表示为f0+f1x+f2x2+f_0 + f_1x + f_2x^2 + \dots,本题中fif_i为整数。

输入

输入包含多个测试用例。每个用例占一行,格式为 m n f0 f1 ... fm+n-1,其中fif_if(x)f(x)幂级数展开中xix^i项的系数。保证:

  • 1m,1n41 \leq m, 1 \leq n \leq 42m+n102 \leq m + n \leq 10,且fi5|f_i| \leq 5
  • 输入以m = n = 0的行结束,该行无ff的系数。
  • 给定输入存在唯一解。

输出

对每个测试用例,输出两行。第一行打印多项式p(x)p(x),第二行打印q(x)q(x)

  • p(x)p(x)应按ii升序排列,以形如(p_i, i)的对列表表示,其中pip_i是非零系数。每个非零系数pip_i需表示为最简分数a/ba/bb>0b > 0),若b=1b=1则仅打印aa(省略bb)。若p(x)=0p(x) = 0,则打印仅包含(0,0)的行。列表中的对用单个空格分隔。
  • q(x)q(x)的打印格式与p(x)p(x)相同。
  • 不同测试用例之间插入一个空行。

输入数据 1

2 2 0 0 1 1  
4 2 1 2 3 4 5 -2  
1 1 2 3  
1 4 -5 0 -2 1 -2  
0 0  

输出数据 1

(0,0)  
(1,1)  

(-4/33,0) (-1/11,1) (-2/33,2) (-1/33,3)  
(-4/33,0) (5/33,1)  

(2/3,0)  
(1/3,0)  

(25/6,0)  
(-5/6,0) (1/3,2) (-1/6,3)  

来源

2000年北美中东部地区赛