洛谷 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. 【poj1430】Binary Stirling Numbers(斯特林数+组合数)

    传送门 题意: 求\(S(n,m)\% 2\)的值,\(n,m\leq 10^9\),其中\(S(n,m)\)是指第二类斯特林数. 思路: 因为只需要关注奇偶性,所以递推式可以写为: 若\(m\)为偶 ...

  2. 断点调试debugger

    断点调试有两种打点方式 (1)控制台手动打点 (2)代码中添加 debugger打点 .

  3. 【转】关闭firefox火狐浏览器下载完成时自动扫描(49.0.2以后版本)

    用firefox火狐浏览器下载文件到最后时,会显示"剩余时间未知",将持续10秒钟左右,即使几KB 的文件,也要持续这么长时间,问度娘才知道是自动扫描,检查是否有毒,用的却是Goo ...

  4. AcWing 37. 树的子结构

    题目描述  地址https://www.acwing.com/problem/content/35/输入两棵二叉树A,B,判断B是不是A的子结构. 我们规定空树不是任何树的子结构. 样例 树A: / ...

  5. Vue 监听鼠标左键 鼠标右键以及鼠标中键修饰符click.left&contextmenu&click.middle

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. python-pandas读取mongodb、读取csv文件

    续上一篇博客(‘’selenium爬取NBA并将数据存储到MongoDB‘)https://www.cnblogs.com/lutt/p/10810581.html 本篇的内容是将存储到mongo的数 ...

  7. C语言程序设计100例之(5):分解质因数

    例5    分解质因数 题目描述 将一个正整数分解质因数.例如:输入90,输出 90=2*3*3*5. 输入 输入数据包含多行,每行是一个正整数n (1<n <100000) . 输出 对 ...

  8. window.onload在文档加载完成后执行

    验证a .b两点疑惑: a.<script src="./main.js"></script>中的window.onload是在html全部加载完了才执行, ...

  9. IT兄弟连 Java语法教程 数组 数组的使用

    数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值.访问数组元素都是通过在数组引用变量后紧跟一个方括号([]),方括号里是数组元素的索引值,这样就可以访问数组元素了.访问到数组 ...

  10. vue发送ajx请求 axios

    一. 简介 1.vue本身不支持发送AJAX请求,需要使用vue-resource(vue1.0版本).axios(vue2.0版本)等插件实现 2.axios是一个基于Promise的HTTP请求客 ...