求 (ax+by)^k 的展開中 x^n*y^m 項的係數。由於係數可能很大,只要求輸出除以 10007 的餘數。
一行共五個整數,分別為 a,b,k,n,m
乙個整數,為該項係數除以10007的餘數。
1 1 3 1 2
3資料範圍:
30% 0<=k<=10,
50% a=1,b=1
100% 0<=k<=1000, 0<=n,m<=k 且 n+m=k, 0<=a,b<=100,000
//noip2011 day2 factor
solution:
首先先不考慮a,b的變化,即假設a=b=1。
然後開始分析題意,(ax+by)^k的展開,在數學上是乙個楊輝三角~
//下面是數學問題惹
(假定a=b=1) 我們就k=0,1,2,3...進行分析
1 x^0*y^0
1 1 x^1+y^1
1 2 1 x^2+2xy+y^2
1 3 3 1 x^3+3x^2y+3xy^2+*y^2
以此類推,本題只是增加了a,b的數值。
在楊輝三角中找出ans=f[k][m]後,再把ans^a後再ans^b即可。
記得取模(不用寫快速冪也是很良心der~)
1 #include2#define maxn 1005
3#define mode 10007
4using
namespace
std;
5int
f[maxn][maxn];
6int a,b,k,n,m,ans=1;7
intmain()
14for(int i=3;i<=k;i++)
15for(int j=2;j<=i;j++) f[i][j]=(f[i-1][j-1]+f[i-1][j])%mode;
16 ans=f[k][m]%mode;
17for(int i=1;i<=n;i++) ans=(ans*a)%mode;
18for(int i=1;i<=m;i++) ans=(ans*b)%mode;
19 printf("%d"
,ans);
20return0;
21 }
NOIP2011 計算係數
1計算係數 給定乙個多項式 ax by k 請求出多項式展開後 x n y m 項的係數。輸入 輸入檔名為 factor.in。共一行,包含 5 個整數,分別為 a,b,k,n,m,每兩個整數之間用乙個空格隔開。輸出 輸出檔名為 factor.out。輸出共 1 行,包含乙個整數,表示所求的係數,這...
NOIP 2011 計算係數
題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入輸出格式 輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對...
NOIp2011 計算係數
描述 給定乙個多項式 ax by k,請求出多項式展開後x ny m項的係數。輸入共一行,包含 5 個整數,分別為a,b,k,n,m,每兩個整數之間用乙個空格隔開。輸出輸出共 1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對10007 取模後的結果。樣例輸入 1 1 3 1 2樣例輸出...