Kyoya and Colored Balls CodeForces 553A(组合数学)
2017-08-09 21:00
274 查看
题目链接:https://vjudge.net/problem/CodeForces-553A
板子来源:http://www.cnblogs.com/zyf0163/p/4838566.html
代码:
题意:
有k种颜色的球,每个球的个数为c[i],对应编号为i。现在将这些球从左到右排列,要求颜色编号为i的球的最右边的一个必须要在颜色编号为i+1的最右边一个的左边,问有多少种组合。思路:
设颜色为1, 2, 3….i-1的球一共有pre[i]个,那么颜色为i的球能放的位置有C(pre[i+1]-1, c[i]-1)个(pre[i+1]-1在下面),然后把k中颜色的方案数类乘就可以得到答案。总结:
发现是简单题后,到网上copy了一个模板…板子来源:http://www.cnblogs.com/zyf0163/p/4838566.html
代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; ll mod_pow(ll x, ll n, ll p){ ll res = 1; while(n){ if(n & 1) res =res * x % p; x = x * x % p; n >>= 1; } return res; } ll comb(ll n, ll m, ll p){ if(m > n) return 0; ll ret = 1; m = min(n - m, m); for(int i = 1; i <= m; i ++){ ll a = (n + i - m) % p; ll b = i % p; ret = ret * (a * mod_pow(b, p - 2, p) % p) % p; } return ret; } ll Lucas(ll n, ll m, ll p){ if(m == 0) return 1; return comb(n % p, m % p, p) * Lucas(n / p, m / p, p) % p; } const int maxn = 10000; int A[maxn], pre[maxn]; int main(){ int T; ll n, m, p=1000000007; cin>>T; pre[0] = 0; for(int i=0; i<T; ++i){ cin>>A[i]; pre[i+1] = pre[i] + A[i]; } ll ans = 1; for(int i=1; i<T; ++i){ ans = ans * Lucas(pre[i+1]-1, A[i]-1, p) % p; } cout<<ans<<endl; return 0; }
相关文章推荐
- Codeforces554C:Kyoya and Colored Balls(组合数学计算+费马小定理)
- Codeforces Round#309 C Kyoya and Colored Balls
- codeforces Kyoya and Colored Balls
- CF#309-DIV2-C. Kyoya and Colored Balls-组合数学
- Codeforces Round #309 (Div. 2) C. Kyoya and Colored Balls
- CodeForces #554 C Kyoya and Colored Balls
- codeforces round 404 div2 D Anton and School - 2 组合数学
- Codeforces 554C. Kyoya and Colored Balls【组合数 逆元】
- A. Kyoya and Colored Balls_排列组合,组合数
- Codeforces Round #404 (Div. 2) D. Anton and School - 2(组合数学)
- codeforces554 C. Kyoya and Colored Balls【组合数 + 思维 + 阶乘逆元】
- 【Codeforces Round 354 (Div 2)E】【数学 多项式除法 讨论】The Last Fight Between Human and AI 多项式除以x-k是否值整除
- Educational Codeforces Round 31 D. Boxes And Balls
- 【Codeforces Round 272 (Div 2)B】【暴力dfs or 组合数】Dreamoon and WiFi 问号填加减方案数使得最后恰好增量为aim
- codeforces#233_div2_B Red and Blue Balls
- 【组合 数学】codeforces C. Do you want a date?
- CodeForces #309 Div.2 C. Kyoya and Colored Balls
- Codeforces Round #410 (Div.2) C.Mike and gcd problem-数学
- codeforces#292-C - Drazil and Factorial-数学规律题
- codeforces#233_div2_B Red and Blue Balls