UVALive-8079 Making a Team 排列组合公式化简
题目链接:https://cn.vjudge.net/problem/UVALive-8079
题意
n个人组队,队伍人数小于等于n,每个队伍需要4个不同的职务的领导。
问这n个人可以组成多少队?
n<=1e7
思路
很明显,对一个i人队伍,可以组成$ \sum\binom{i}{1}^4\binom{n}{i} = \sum i^4\binom{n}{i} $种可能。
现在分析一下复杂度,对一个n来讲我们可以求逆元来求组合数,所以O(n)复杂度。
那么现在又有1000行的数据,总的复杂度远远超过了10s的时间。
又要优化了,这次看了半天没有优化思路,赛后有人讲把整个式子拆开即可,反正我是拆不开。
这次用用某同学的方法优化。
\[
\begin{align*}
1+\sum_1^n \binom{n}{i}x^i&=(1+x)^n \\
(1+\sum_1^n \binom{n}{i}x^i)'&=((1+x)^n)' \\
\sum_1^n i\binom{n}{i}x^{i-1}&=n(1+x)^{n-1} \\
\sum_1^n i\binom{n}{i}x^i&=n(1+x)^{n-1}x \\
\sum_1^n i^2\binom{n}{i}x^i&=n(n-1)(1+x)^{n-2}x^2+n(1+x)^{n-1}x \\
\sum_1^n i^3\binom{n}{i}x^i&=n(n-1)(n-2)(1+x)^{n-3}x^3+2n(n-1)(1+x)^{n-2}x^2+ n(n-1)(1+x)^{n-2}x^2+n(1+x)^{n-1}x \\
\sum_1^n i^4\binom{n}{i}&=2^{n-4}(n^4+20n^3-55n^2+42n)
\end{align*}
\]
这个思路可以应对$ \sum f(i) \binom{n}{i} $形式的化简,其中f(i)是i的多项乘积。
提交过程
TLE |
AC
代码
#include <cstdio> #include <cstring> const int maxn=1e7+20; const int mod=1e8+7; int pow2[maxn]; void init(void){ pow2[0]=1; for (int i=1; i<maxn; i++) pow2[i]=(pow2[i-1]*2)%mod; // printf("done\n"); } long long pow(long long x, int num){ long long res=1; for (int i=0; i<num; i++) res=(res*x)%mod; return res; } long long func(int n){ if (n==1) return 1; if (n==2) return 18; if (n==3) return 132; return ((pow2[n-4]*(pow(n, 4) + 6*pow(n, 3) + 3*pow(n, 2) - 2*n )%mod)%mod+mod)%mod; } int main(void){ long long n; init(); while (scanf("%lld", &n)==1 && n) printf("%lld\n", func(n)); return 0; }
Time | Memory | Length | Lang | Submitted |
---|---|---|---|---|
66ms | None | 682 | C++ 5.3.0 | 2018-08-24 23:14:22 |
- UVALive 6469 Deranged Exams (排列组合:绝逼是纯纯的高中知识啊)
- UVALive 6909 Kevin's Problem 数学排列组合
- 【排列组合】UVALive - 6926 Maximum Score
- hdu 1799 (循环多少次?)(排列组合公式)
- 各种排列组合奇怪的数的公式和推导
- 排列组合计算公式
- 一个排列组合公式的推导
- 排列组合·UVA 11076·排列之和
- hdu 1799 (循环多少次?)(排列组合公式)
- 排列与组合定理和公式
- ECfinal UVALive 7512 November 11th (公式)
- 第四届图灵杯-A.谷神的赌博游戏(概率题,排列组合,推公式)
- 排列组合公式/排列组合计算公式
- 组合数学基本工具-- 排列与组合以及简单公式
- The queue uvalive 5002 light 1382 uva 12257 (dfs加组合数学)
- 排列组合_排列_数学公式
- 排列组合公式/排列组合计算公式
- uvalive 5059 Playing With Stones(组合游戏,SG函数)@
- 排列组合公式
- UVA - 11027 Palindromic Permutation 排列组合