P2638-安全系统【数论,组合数学】
生活随笔
收集整理的這篇文章主要介紹了
P2638-安全系统【数论,组合数学】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目鏈接:https://www.luogu.org/problem/P2638
題目大意
aaa個不同的000,bbb個不同的111。nnn個位置每個可以放0,10,10,1可以都放也可以不放也可以只放一個。然后求方案數。
解題思路
答案就是(∑i=0aCni?Cai)?(∑i=0bCni?Cbi)(\sum_{i=0}^a C_{n}^{i}*C_{a}^i)*(\sum_{i=0}^b C_{n}^{i}*C_{b}^i)(i=0∑a?Cni??Cai?)?(i=0∑b?Cni??Cbi?)
楊輝三角直接計算就好了。
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define C(n,m) f[n+1][m+1] using namespace std; unsigned long long n,a,b,f[60][60],ans1,ans2; int main() {scanf("%llu%llu%llu",&n,&a,&b);f[0][0]=1;for(int i=1;i<=max(max(n+1,a+1),b+1);i++)for(int j=1;j<=i;j++)f[i][j]=f[i-1][j-1]+f[i-1][j];for(int i=0;i<=a;i++)ans1+=C(n,i)*C(a,i);for(int i=0;i<=b;i++)ans2+=C(n,i)*C(b,i);unsigned long long ans=ans1*ans2;printf("%llu",ans); }總結
以上是生活随笔為你收集整理的P2638-安全系统【数论,组合数学】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛排怎么吃好吃
- 下一篇: P2217-[HAOI2007]分割矩阵