• jQuery火箭图标返回顶部代码


    关于二项式定理:

    感谢(lfd)

    定理内容:

    ((a+b)^n=C_n^0*a^n*b^0+C_n^1*a^{n-1}*b^1+......C_n^n*a^0*b^n)
    也就是((a+b)^n=Sigma _{k=0}^nC_n^ka^kb^{n-k})
    通项公式:(T_{r+1}=C_n^r*a^{n-r}*b^r) ((rin [0,n]))
    解释一下各字母的含义:
    (T[r+1]:)表示第(r+1)项是什么
    (C_n^r:)他只是个单纯的组合数而已
    (a^{n-r}:) 因为(a)是未知数,所以这个(n-r)就代表第(r+1)项时的(a)的次数是(n-r)
    (b^r)同上
    例题:
    洛谷p1313计算系数

    很明显的二项式定理的应用
    需要注意一下的是其实由于(x 、 y)都是有系数的,所以还要把他们的系数也算出来,次数与(x、y)的保持一致
    Code:

    #include <cstdio>
    #include <iostream>
    #define int long long
    using namespace std;
    const int mo = 10007;
    int c[1005][1005], ans, a, b, k, n, m;
    int read() {
    	int s = 0, w = 1;
    	char ch = getchar();
    	while(!isdigit(ch)) {if(ch == '-') w = -1; ch = getchar();}
    	while(isdigit(ch)) {s = s * 10 + ch - '0'; ch = getchar();}
    	return s * w;
    }
    int power(int x, int y) {
    	int sum = 1;
    	while(y) {
    		if(y & 1) sum = (sum * x) % mo;
    		x = (x * x) % mo;
    		y >>= 1;
    	}
    	return sum;
    }
    int find(int n, int m) {
    	if(!m) return c[n][m] = 1;
    	if(m == 1) return c[n][m] = n;
    	if(c[n][m]) return c[n][m];
    	if(n - m < m) m = n - m;
    	return c[n][m] = (find(n - 1, m) + find(n - 1, m - 1)) % mo;	
    }
    signed main() {
    	a = read(), b = read(), k = read(), n = read(), m = read();
    	c[1][0] = c[1][1] = ans = 1;
    	a %= mo, b %= mo;
    	ans *= (power(a, n) * power(b, m)) % mo;
    	if(n > m) n = m;
    	ans = (ans * find(k, n) % mo) % mo;
    	printf("%lld
    ", ans);
    	return 0;
    }
    

    谢谢收看, 祝身体健康!

  • 相关阅读:
    NPOI开发手记
    jQuery.form开发手记
    jQuery.Flot开发手记
    node.js初探
    Linux私房菜阅读笔记
    c#实现常用排序算法
    Excel自定义函数开发手记
    浅谈知识管理
    Git学习手记
    c# 屏蔽快捷键
  • 原文地址:https://www.cnblogs.com/yanxiujie/p/11776904.html
Copyright © 2020-2023  润新知