• noip2011 计算系数


    P1313 计算系数

      • 431通过
      • 1.4K提交
    • 题目提供者该用户不存在
    • 标签数论(数学相关)2011NOIp提高组
    • 难度普及/提高-

    提交该题 讨论 题解 记录

     

    题目描述

    给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数。

    输入输出格式

    输入格式:

    输入文件名为factor.in。

    共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开。

    输出格式:

    输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。

    输入输出样例

    输入样例#1:
    1 1 3 1 2
    
    输出样例#1:
    3

    说明

    【数据范围】

    对于30% 的数据,有 0 ≤k ≤10 ;

    对于50% 的数据,有 a = 1,b = 1;

    对于100%的数据,有 0 ≤k ≤1,000,0≤n, m ≤k ,且n + m = k ,0 ≤a ,b ≤1,000,000。

    noip2011提高组day2第1题

    分析:数据比较小,学过初中数学的人都知道二项式的系数是杨辉三角中的数,求出杨辉三角可以递推和组合数求解,这道题规模较小,就用递推把.

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    
    using namespace std;
    
    int s[1005][1005];
    int a,b,n,m,k;
    
    int main()
    {
        scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
        a %= 10007,b %= 10007;
        for (int i = 0; i <= k; i++)
        s[i][0] = 1;
        for(int i = 0; i <= k; i++)
        s[i][i] = 1;
        for (int i = 2; i <= k; i++)
        for (int j = 1; j <= i-1; j++)
        s[i][j] = (s[i-1][j] + s[i-1][j-1]) % 10007;
        int ans = s[k][m];
        for (int i = 1; i <= n; i++) 
        ans = (ans * a) % 10007;
        for (int i = 1; i <= m; i++)
        ans = (ans * b) % 10007;
        printf("%d",ans);
        
        return 0;
     } 
  • 相关阅读:
    config文件 反射方法
    模块"xxxx.dll"已加载,但对DllRegisterServer的调用失败,错误代码为 XXXXXXXXX
    多线程定时 每天执行
    监控windows服务,当服务停止后自动重启服务
    log4net使用(winform)
    sql 第 10条 到20条
    windows 服务
    安卓屏幕模拟器
    dg_MeetingRoom 居中显示
    sql 清空所有数据
  • 原文地址:https://www.cnblogs.com/zbtrs/p/5721447.html
Copyright © 2020-2023  润新知