The coefficient of x1n1x2n2...xknk is (n, n1)(n-n1, n2)...(n-n1-n2-...-nk-1, nk) = n!/n1!n2!...nk!.
Code:
- /*************************************************************************
- * Copyright (C) 2008 by liukaipeng *
- * liukaipeng at gmail dot com *
- *************************************************************************/
- /* @JUDGE_ID 00000 10105 C++ "Polynomial Coefficients" */
- #include <algorithm>
- #include <cstdio>
- #include <cstring>
- #include <deque>
- #include <fstream>
- #include <iostream>
- #include <list>
- #include <map>
- #include <queue>
- #include <set>
- #include <stack>
- #include <string>
- #include <vector>
- using namespace std;
- int main(int argc, char *argv[])
- {
- #ifndef ONLINE_JUDGE
- freopen((string(argv[0]) + ".in").c_str(), "r", stdin);
- freopen((string(argv[0]) + ".out").c_str(), "w", stdout);
- #endif
- int factorials[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880,
- 3628800, 39916800, 479001600};
- for (int n, k; cin >> n >> k; ) {
- int c = factorials[n];
- for (int i = 0, t; i < k && cin >> t; ++i)
- c /= factorials[t];
- cout << c << '/n';
- }
- return 0;
- }