洛谷 P1313 计算系数

洛谷传送门

JDOJ 1747: [NOIP2011]计算系数 D2 T1

JDOJ传送门

Description

给定一个多项式(ax + by)k,请求出多项式展开后xn ym项的系数。

Input

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

Output

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

Sample Input

1 1 3 1 2

Sample Output

3

HINT

【数据范围】

对于 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。

Source

NOIP2011提高组

题解:

此题有两种做法(可能有很多种,但我只会两种):第一种是杨辉三角,第二种是递推。

先来讲一下递推:

设置状态\(dp[i][j]\)表示\(x^iy^j\)项的系数,显然答案就是\(dp[n][m]\)。初值\(dp[0][0]=1\)。

那么我们怎么设置状态转移方程呢?

很容易,我们在草纸上手推,\(dp[i-1][j]\)表示\(x^{i-1}y^j\)的系数,那么\(x^iy^j\)的系数显然就是这个东西再乘上一个\(ax\)。那么对其系数的贡献就是多乘上了一个\(a\)。

那么状态转移方程就是:

\[dp[i][j]=dp[i-1][j]\times a+dp[i][j-1]\times b
\]

这里要注意,我们递推的时候是从\(0\)开始的,为了取模需要,我们将每次递推之前的\(dp[i][j]\)置成了\(0\).(这是有必要的,否则你要是用\(+=\)就没办法取模)。记得开\(long long\)。

代码如下:

#include<cstdio>
#define int long long
using namespace std;
const int maxk=1e3+10;
const int mod=10007;
int a,b,k,n,m;
int dp[maxk][maxk];
signed main()
{
scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
dp[0][0]=1;
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
{
if(!i && !j)
continue;
dp[i][j]=0;
if(i)
dp[i][j]=(dp[i][j]+dp[i-1][j]*a)%mod;
if(j)
dp[i][j]=(dp[i][j]+dp[i][j-1]*b)%mod;
}
printf("%lld",dp[n][m]);
return 0;
}

NOIP 2011 计算系数的更多相关文章

  1. Codevs 1137 计算系数 2011年NOIP全国联赛提高组

    1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个多项式(ax + by ...

  2. codevs1137 计算系数

    1137 计算系数 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给定一 ...

  3. NOIP 2011 Day2

    tags: 贪心 模拟 NOIP categories: 信息学竞赛 总结 计算系数 Solution 根据二项式定理, \[ \begin{align} (a+b)^n=\sum_{k=0}^nC_ ...

  4. 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)

    计算系数 题目描述 给定一个多项式(ax + by)k,请求出多项式展开后xn ym项的系数. [数据范围] 对于 30%的数据,有0≤k≤10: 对于 50%的数据,有a = 1,b = 1: 对于 ...

  5. NOIP2011 计算系数

    1计算系数 给定一个多项式 (ax + by)k ,请求出多项式展开后 x n y m 项的系数. [输入] 输入文件名为 factor.in. 共一行,包含 5 个整数,分别为 a,b,k,n,m, ...

  6. COJ 0138 NOIP201108计算系数

    NOIP201108计算系数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给定一个多项式(ax + by)^k,请求出多项式 ...

  7. 【洛谷p1313】计算系数

    (%%%hmr) 计算系数[传送门] 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(ax+by)k的计算需要用到二项式定理: 对于(x+y)k,有第r+1项的系数为:Tr+1= ...

  8. 一本通1648【例 1】「NOIP2011」计算系数

    1648: [例 1]「NOIP2011」计算系数 时间限制: 1000 ms         内存限制: 524288 KB [题目描述] 给定一个多项式 (ax+by)k ,请求出多项式展开后 x ...

  9. 洛谷P1313 计算系数【快速幂+dp】

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

随机推荐

  1. Deepin 15.9系统直接运行exe运行程序

    以下为你介绍在深度Deepin 15.9 Linux操作系统下直接运行exe文件的方法,此方法基于deepin-wine实现,经测试,一些exe文件是可以正常打开的,但部分可能会出现无法使用的情况,但 ...

  2. navicat使用教程-PJ

    navicat使用教程-PJ Navicat Keygen Patch是一款专门针对Navicat系列软件出品的一款小巧实用,功能强大的破解辅助工具.它能够实现对Navicat全系列版本进行激活破解, ...

  3. 图片base64编码解码

    1.图片base64编码 https://c.runoob.com/front-end/59 2.图片base64解码 https://www.it399.com/image/base64 https ...

  4. mock 模拟数据在框架中的简单使用

    首先在框架中需要安装mock模块 cnpm i mockjs -S 其次在src文件夹下新建mock文件夹,在mock文件夹中新建一个index.js文件 代码如下: const Mock = req ...

  5. 《深度访谈:华为开源数据格式 CarbonData 项目,实现大数据即席查询秒级响应》

    深度访谈:华为开源数据格式 CarbonData 项目,实现大数据即席查询秒级响应   Tina 阅读数:146012016 年 7 月 13 日 19:00   华为宣布开源了 CarbonData ...

  6. C语言中倒序输出你输入的数。

    int n; scanf("%d",&n); while(n>0) { printf("%d",n%10); n/=10;  //其实就是n的自除 ...

  7. css top,right,bottom,left设置为0有什么用?它和width:100%和height:100%有什么区别?

     壹 ❀ 引 当我们使用position属性时,总免不了与top,left,right,bottom四个属性打交道,那么这四个属性都设置为0时有什么用,与宽高设置100%又有什么区别?本文对此展开讨论 ...

  8. Ansible 日常使用技巧 - 运维总结

    Ansible默认只会创建5个进程并发执行任务,所以一次任务只能同时控制5台机器执行.如果有大量的机器需要控制,例如20台,Ansible执行一个任务时会先在其中5台上执行,执行成功后再执行下一批5台 ...

  9. C++入门到理解阶段二基础篇(4)——C++运算符

    目录 算术运算符(进行四则运算) 赋值运算符(表达式的值赋给变量) 比较运算符(表达是比较,返回一个真值或假值) 逻辑运算符(返回表格式的结果真或假) 位运算符 杂项运算符 C++ 中的运算符优先级 ...

  10. laravel中视图的基本使用(七)

    laravel中的视图默认保存在 resources\views 目录下.在控制器中,我们通常使用 view() 方法返回一个视图文件. <?php namespace App\Http\Con ...