給定乙個多項式(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題
題解:好久沒做題了,開坑第一題。。。
最後我們需要求解的結果是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)我們則採用快速冪來進行解決~~~做法如下:
1ll qpow(ll x,ll p)7}
8return
ret;
9 }
最終我們可以寫出實現結果:
1 #include 2using
namespace
std;
3 typedef long
long
ll;4
#define mod 10007
5 ll dp[1010][1010];6
ll qpow(ll x,ll p)12}
13return
ret;14}
15int
main()
21for(ll i=1;i<=k+1;i++)25}
26 ll ans=qpow(a,n)*qpow(b,m)*dp[k+1][m]%mod;
27 printf("
%lld\n
",ans);
28return0;
29 }
洛谷 P1313 計算係數
題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入輸出格式 輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對...
洛谷 P1313 計算係數
題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入輸出格式 輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對...
洛谷 P1313 計算係數
題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對10007 取...