NOIP 2011 计算系数
洛谷 P1313 计算系数
JDOJ 1747: [NOIP2011]计算系数 D2 T1
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
题解:
此题有两种做法(可能有很多种,但我只会两种):第一种是杨辉三角,第二种是递推。
先来讲一下递推:
设置状态\(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\)。
那么状态转移方程就是:
\]
这里要注意,我们递推的时候是从\(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 计算系数的更多相关文章
- Codevs 1137 计算系数 2011年NOIP全国联赛提高组
1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个多项式(ax + by ...
- codevs1137 计算系数
1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定一 ...
- NOIP 2011 Day2
tags: 贪心 模拟 NOIP categories: 信息学竞赛 总结 计算系数 Solution 根据二项式定理, \[ \begin{align} (a+b)^n=\sum_{k=0}^nC_ ...
- 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
计算系数 题目描述 给定一个多项式(ax + by)k,请求出多项式展开后xn ym项的系数. [数据范围] 对于 30%的数据,有0≤k≤10: 对于 50%的数据,有a = 1,b = 1: 对于 ...
- NOIP2011 计算系数
1计算系数 给定一个多项式 (ax + by)k ,请求出多项式展开后 x n y m 项的系数. [输入] 输入文件名为 factor.in. 共一行,包含 5 个整数,分别为 a,b,k,n,m, ...
- COJ 0138 NOIP201108计算系数
NOIP201108计算系数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给定一个多项式(ax + by)^k,请求出多项式 ...
- 【洛谷p1313】计算系数
(%%%hmr) 计算系数[传送门] 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(ax+by)k的计算需要用到二项式定理: 对于(x+y)k,有第r+1项的系数为:Tr+1= ...
- 一本通1648【例 1】「NOIP2011」计算系数
1648: [例 1]「NOIP2011」计算系数 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 给定一个多项式 (ax+by)k ,请求出多项式展开后 x ...
- 洛谷P1313 计算系数【快速幂+dp】
P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...
随机推荐
- XOR加密作业
思路 -1.对需要加密的内容进行MD5加密 -2.随机生产32位的十六进制密钥 -3.对密钥和MD5加密内容进行异或运算. 主要问题: -1.如何实现MD5加密 -2.如何随机生成32位16进制密钥 ...
- @ConfigurationProperties(pref="")加载局部配置文件
刚开始@ConfigurationProperties(文件名)直接在参数里加文件名,其实是配置前缀pref="前缀".加载局部配置文件是@PropertySource(value ...
- 解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger)
解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger) 最近在使用谷歌浏览器在调试js脚本的时候,每次按F12,再刷新页面,都会跳出如上图所示的图标,自动进入断点调试.如果不 ...
- Redis思维导图
Redis基本数据结构 1.String 1.1 数据结构 long len byte数组长度 long free 可用数组长度 char buff[] 数据内容 1.2 命令 键值:设置值通过字符串 ...
- linux编程stat检测文件元数据信息
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/sta ...
- 手把手教你如何用 OpenCV + Python 实现人脸检测
配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like Haar-like百科释义.通俗的来讲 ...
- 如何将Azure SQL 数据库还原到本地数据库实例中
原文:https://www.jerriepelser.com/blog/restore-sql-database-localdb/ 原文作者: Jerrie Pelser 译文:如何将Azure S ...
- IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战
播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...
- ubuntu 16.04上源码编译和安装cgal并编写CMakeLists.txt | compile and install cgal on ubuntu 16.04
本文首发于个人博客https://kezunlin.me/post/39ab7ed9/,欢迎阅读最新内容! compile and install cgal on ubuntu 16.04 Guide ...
- python基础(6):基本数据类型一(int、bool、str)
1. 基本数据类型 1. int ==> 整数,主要⽤来进⾏数学运算 2. str ==> 字符串,可以保存少量数据并进⾏相应的操作 3. bool==>判断真假,True,Fals ...