1 条题解

  • 0
    @ 2023-1-9 18:53:19
    (a+b)=a+b(a + b) = a + b $$(a + b)^2\\ =(a+b)a+(a+b)b\\ =a^2+ab+ab+b^2\\ =a^2+2ab+b^2 $$$$(a+b)^3\\ =(a+b)\cdot(a+b)\cdot(a+b)\\ =(a^2+2ab+b^2)\cdot(a+b)\\ =(a^2\cdot a+2ab\cdot a+b^2\cdot a)+(a^2\cdot b+2ab\cdot b+b^2\cdot b)\\ =a^3+3a^2b+3ab^2+b^3 $$$$(a+b)^4\\ =(a^3+3a^2b+3ab^2+b^3)(a+b)\\ =a^4+4a^3b+6a^2b^2+4ab^3+b^4 $$

    5 的话同上,结果样例都有了,不解释了。

    观察一下系数,珂以发现这是杨辉三角

    然后就好了

    如果想不到珂以去 oeis

    注意数据很坑,需要开 unsigned long long

    #include "bits/stdc++.h"
    using namespace std;
    
    unsigned long long f[1919][810];
    
    int main() {
        int n;
        scanf ("%d", &n);
        f[1][1] = 1ll;
        f[1][2] = 1ll;
        for (int i = 2; i <= n; ++i) {
            for (int j = 1; j <= n; ++j) {
                f[i][j] = f[i - 1][j - 1] + f[i - 1][j];
            }
        }
        if (n == 1) {printf ("(a+b)^1=a+b"); return 0;}
        printf ("(a+b)^%d=a^%d", n, n);
        for (int i = 1; i < n; ++i) {
            if (n - i == 1) printf ("+%llua", f[n][i + 1]);
            else printf ("+%llua^%d", f[n][i + 1], n - i);
            if (i == 1) printf ("b");
            else printf ("b^%d", i);
        }
        printf ("+b^%d", n);
    }
    
    • 1

    信息

    ID
    278
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    183
    已通过
    49
    上传者