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

 

P1313 计算系数

题目描述

给定一个多项式(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题

题目链接:https://www.luogu.org/problemnew/show/P1313

题解:好久没做题了,开坑第一题。。。

最后我们需要求解的结果是ans=dp[k+1][m]*(a^n)*(b^m) mod 10007

这题目首先是组合数,很快我们能够联系到dp相关知识,可以看出来这就是个杨辉三角,我们需要求解的是C(k,m),而我们设置从1开始,所以我们需要求解的最后结果是dp[k+1][m],

做法是dp[i][j]=(dp[i-1][j-1]+dp[i-1][j])%mod;

求解(a^n),(b^m)我们则采用快速幂来进行解决~~~做法如下:

复制代码
1 ll qpow(ll x,ll p){
2     ll ret=1;
3     for(;p;p>>=1,x=x*x%mod){
4         if(p&1){
5             ret=ret*x%mod;
6         }
7     }
8     return ret;
9 }
复制代码

最终我们可以写出实现结果:

复制代码
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define mod 10007
 5 ll dp[1010][1010];
 6 ll qpow(ll x,ll p){
 7     ll ret=1;
 8     for(;p;p>>=1,x=x*x%mod){
 9         if(p&1){
10             ret=ret*x%mod;
11         }
12     }
13     return ret;
14 }
15 int main(){
16     ll a,b,k,n,m;
17     scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
18     for(ll i=1;i<=k+1;i++){
19         dp[i][0]=1;
20     }
21     for(ll i=1;i<=k+1;i++){
22         for(ll j=1;j<=m;j++){
23             dp[i][j]=(dp[i-1][j-1]+dp[i-1][j])%mod;
24         }
25     }
26     ll ans=qpow(a,n)*qpow(b,m)*dp[k+1][m]%mod;
27     printf("%lld\n",ans);
28     return 0;
29 } 
复制代码

 

posted @   Angel_Kitty  阅读(382)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2017-02-19 欧里几德及扩展欧里几德算法
2017-02-19 ECJTUACM16 Winter vacation training #5 题解&源码
2017-02-19 Codeforces 716A Crazy Computer
2017-02-19 Codeforces 719B Anatoly and Cockroaches
2017-02-19 POJ 1067 取石子游戏
2017-02-19 Open Judge 2750 鸡兔同笼
2017-02-19 POJ 1017 Packets
点击右上角即可分享
微信分享提示
哥伦布
14°
14:09发布
哥伦布
14:09发布
14°
大雨
南风
3级
空气质量
相对湿度
93%
今天
中雨
14°/19°
周日
中雨
5°/19°
周一
1°/11°