zoukankan      html  css  js  c++  java
  • 周赛-Integration of Polynomial 分类: 比赛 2015-08-02 08:40 10人阅读 评论(0) 收藏

    Integration of Polynomial
    Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
    Submit Statistic Next Problem
    Problem Description

    Suppose there are a polynomial which has n nonzero terms, please print the integration polynomial of the given polynomial.
    The polynomial will be given in the following way, and you should print the result in the same way:
    k[1] e[1] k[2] e[2] … k[n] e[n]
    where k[i] and e[i] respectively represent the coefficients and exponents of nonzero terms, and satisfies e[1] < e[2] < … < e[n].
    Note:
    Suppose that the constant term of the integration polynomial is 0.
    If one coefficient of the integration polynomial is an integer, print it directly.
    If one coefficient of the integration polynomial is not an integer, please print it by using fraction a/b which satisfies that a is coprime to b.
    Input

    There are multiple cases.
    For each case, the first line contains one integer n, representing the number of nonzero terms.
    The second line contains 2*n integers, representing k[1], e[1], k[2], e[2], …, k[n], e[n]。
    1 ≤ n ≤ 1000
    -1000 ≤ k[i] ≤ 1000, k[i] != 0, 1 ≤ i ≤ n
    0 ≤ e[i] ≤ 1000, 1 ≤ i ≤ n
    Output

    Print the integration polynomial in one line with the same format as the input.
    Notice that no extra space is allowed at the end of each line.
    Sample Input

    3
    1 0 3 2 2 4
    Sample Output

    1 1 1 3 2/5 5
    Hint

    f(x) = 1 + 3x2 + 2x4
    After integrating we get: ∫f(x)dx = x + x3 + (2/5)x5
    数学的不定积分加GCD

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <cmath>
    #include <queue>
    #include <stack>
    #include <map>
    #include <list>
    #include <algorithm>
    #define LL long long
    #define RR freopen("output.txt","r",stdoin)
    #define WW freopen("input.txt","w",stdout)
    
    using namespace std;
    
    const int MAX = 100100;
    
    const int MOD = 1000000007;
    
    int k[1100],e[1100];
    
    int num[1100];
    int GCD(int a,int b)
    {
        return b==0?a:GCD(b,a%b);
    }
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            memset(num,0,sizeof(num));
            for(int i=0;i<n;i++)
            {
                scanf("%d %d",&k[i],&e[i]);
                e[i]++;
                if(k[i]%e[i]==0)
                {
                    k[i]/=e[i];
                }
                else
                {
                    num[i]=e[i];
                    int ans=GCD(abs(k[i]),num[i]);
                    k[i]/=ans;
                    num[i]/=ans;
                }
            }
            for(int i=0;i<n;i++)
            {
                if(i)
                {
                    printf(" ");
                }
                if(num[i])
                {
                    printf("%d/%d %d",k[i],num[i],e[i]);
                }
                else
                {
                    printf("%d %d",k[i],e[i]);
                }
            }
            printf("
    ");
        }
    
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    第2章 类模板:2.3 类模板的局部使用
    第2章 类模板:2.2 类模板Stack的使用
    第2章 类模板:2.1 类模板Stack的实现
    第1章 函数模板:1.6 但是,我们不应该…?
    第1章 函数模板:1.5 重载函数模板
    第1章 函数模板:1.4 默认模板参数
    第1章 函数模板:1.3 多模板参数
    第1章 函数模板:1.2 模板参数的推导
    第1章 函数模板:1.1 初识函数模板
    第31课 std::atomic原子变量
  • 原文地址:https://www.cnblogs.com/juechen/p/4721945.html
Copyright © 2011-2022 走看看