[ustctraining][13.05.09]C - 多项式积分

C - 多项式积分
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Submit Status

Description

给定一个关于x(小写字母)的多项式,求其关于x的一阶积分,结果按降幂输出,要求结果为最简多项式。输出的多项式符合一般书写规则,即有如下特性:

多项式由单项式相加或相减组成,单项式可以表示成ax^b的形式,其中a、b均为整数,b为大于等于0的整数,a不能为0,特别的,当b等于1时,省略”^1”,写做ax,当b等于0时,写作a,而当a的值为±1时,1必须省略。多项式首项的不允许有“+”。

Input

输入第一行为数据组数T。

每组数据第一行是多项式项数n(1<=n<=10),

第二行n个数表示系数,系数均为绝对值小于1000的整数,至少有1个系数不为0。

第三行n个数表示对应系数下x的指数,数据保证指数两两不等,题中给定的指数均为小于1000的非负整数。

Output

输出也只有一行,为积分后的最简多项式,系数如果是分数写成最简分数形式。

Sample Input

2
3
15 2 -2
2 1 0
1
2
3

Sample Output

5x^3+x^2-2x
1/2x^4

 

code:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <cmath>
using namespace std;
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define MST(a,b) memset(a,b,sizeof(a))
#define MAXN 20
int n;
int a[MAXN],b[MAXN];
int a1[MAXN],a2[MAXN],b1[MAXN];
int gcd(int a,int b)
{
    return ((a%b==0)?b:gcd(b,a%b));
}
int main()
{
    freopen("in.txt","r",stdin);
    int nn;
    scanf("%d",&nn);
    FOR(ii,1,nn)
    {
        scanf("%d",&n);
        FOR(i,1,n)scanf("%d",&a[i]);
        FOR(i,1,n)scanf("%d",&b[i]);
        FOR(i,1,n)b1[i]=b[i]+1;
        FOR(i,1,n)FOR(j,i+1,n)
        if(b1[i]<b1[j])
        {
            int t=b1[i];b1[i]=b1[j];b1[j]=t;
            t=a[i];a[i]=a[j];a[j]=t;
        }
        int first=1;
        FOR(i,1,n)
        {
            a1[i]=a[i];
            a2[i]=b1[i];
            if(a1[i]==0)continue;
            if(a1[i]>0)
            {
                if(!first)printf("+");
            }
            if(a1[i]<0)
            {
                printf("-");
                a1[i]=-a1[i];
            }
            int t=gcd(a1[i],a2[i]);
            a1[i]=a1[i]/t;
            a2[i]=a2[i]/t;
            if(a1[i]!=a2[i])
            {
                printf("%d",a1[i]);
                if(a2[i]!=1)printf("/%d",a2[i]);
            }
            printf("x");
            if(b1[i]>1)printf("^%d",b1[i]);
            first=0;
        }
        printf("\n");
    }
}

 

posted @ 2013-05-09 22:19  ustc-acm  阅读(568)  评论(0编辑  收藏  举报