zoukankan      html  css  js  c++  java
  • 【数学】简易多项式

    简易的多项式。用来粗暴模拟。

    struct Poly {
        static const int MAXN = 1e3 + 10;
        int deg, f[MAXN];
        Poly() {
            deg = 0, memset(f, 0, sizeof(f));
        }
        int& operator[](int index) {
            return f[index];
        }
        void maintain() {
            deg = MAXN - 1;
            while (deg && f[deg] == 0)
                --deg;
        }
    };
    
    void show(Poly& f) {
        f.maintain();
        printf("%d
    ", f.deg);
        for (int i = 0; i <= f.deg; ++i)
            printf("%d%c", f[i], " 
    "[i == f.deg]);
    }
    
    Poly add(Poly& f, Poly &g) {
        f.maintain(), g.maintain();
        Poly h;
        h.deg = max(f.deg, g.deg);
        for (int i = 0; i <= h.deg; ++i)
            h[i] = f[i] + g[i];
        h.maintain();
        return h;
    }
    
    Poly sub(Poly& f, Poly &g) {
        f.maintain(), g.maintain();
        Poly h;
        h.deg = max(f.deg, g.deg);
        for (int i = 0; i <= h.deg; ++i)
            h[i] = f[i] - g[i];
        h.maintain();
        return h;
    }
    
    Poly mul(Poly& f, Poly &g) {
        f.maintain(), g.maintain();
        Poly h;
        h.deg = f.deg + g.deg;
        for (int i = 0; i <= f.deg; ++i) {
            for (int j = 0; j <= g.deg; ++j)
                h[i + j] += f[i] * g[j];
        }
        h.maintain();
        return h;
    }
    
  • 相关阅读:
    JDOJ 2430: 组合数取模
    USACO Dual Palindromes
    洛谷 P1365 WJMZBMR打osu! / Easy
    洛谷 P6154 游走
    洛谷 P1654 OSU!
    洛谷 P3802 小魔女帕琪
    洛谷 P1784 数独
    POJ King Arthur's Birthday Celebration
    洛谷 P4550 收集邮票
    洛谷 SP1026 FAVDICE
  • 原文地址:https://www.cnblogs.com/purinliang/p/14507734.html
Copyright © 2011-2022 走看看