
组合数学
suhxbn
这个作者很懒,什么都没留下…
展开
-
求组合数C(n,m)的三种方法
一.暴力法只能用于小数据,如果答案要取模不能使用(除法直接取模会变)复杂度O(n)ll C(ll n,ll m){ll sum1=1,sum2=1;n=min(n,m-n);for(int i=1;i<=n;i++)sum1*=i;for(int i=m-n+1;i<=m;i++)sum2*=i;return sum2/sum1;}...原创 2020-11-07 22:13:32 · 1265 阅读 · 0 评论 -
ARC110-D - Binomial Coefficient is Fun(组合数+思维)
题目链接题意:给出一个长为n的数组A,一个数组B的和m,问从B中选出b1,b2,…,bn(bi>=ai),将所有可能的∏(n,i=1) C(bi,ai)相加答案是多少。思路:可以先举出几个样例,细心观察会发现答案等于C(sum+n,m+n),当然需要一些对组合数字的敏感度。然后可以把问题看作用木棍分隔小球的场景。添加木棍的目的是在选取过程中分歌小球。对于A,sum个小球由n个木棍分隔开,小球首尾都存在木棍;对于B,m个小球由n个木棍分隔开。要从B中选出A,即为C(sum+n,m+n)。至于原创 2020-12-08 09:23:01 · 610 阅读 · 0 评论 -
Biological Software Utilities(数学)
题目链接题意:给n个点,问有多少棵#include <bits/stdc++.h>using namespace std;#define ll long longconst int N=1e6+10,mod=998244353;int n;int main(){ cin>>n; if(n%2) cout<<'0'<<endl; else{ ll ans=1; for(int i=1;i&l原创 2021-03-22 23:00:24 · 401 阅读 · 0 评论 -
abc 202 D - aab aba baa
题目链接笑死,原来没过是因为组合数算错了,大无语。思路:推测第一位是a还是b。如果是a,k会小于C(n,a-1),否则是b。#include<bits/stdc++.h>using namespace std;const int N=1e5+10,M=31*100010;#define ll long longll f[110][110];int main(){ ll a,b,k;cin>>a>>b>>k; int n=a+b原创 2021-05-27 22:02:26 · 228 阅读 · 0 评论 -
B Bheith i ngra le(组合数学)
link一个组合数小tip:在一个x行y列的网格中画一个单调不下降的曲线有C(x,x+y)种方法。注意组合数的题,可以先写出暴力的式子,然后进一步化简。在本题中,答案要+1,因为不涂也是一种方法。代码:#include<bits/stdc++.h>using namespace std;const int N=2010,mod=1e9+7;typedef long long ll;int n,m;ll num[N][N],f[N],inv[N];ll ans;ll原创 2021-06-16 17:56:32 · 181 阅读 · 0 评论