題目大意:
思路:求出所有以第i個數為最小值的方案數。
首先排個序:
第1個數為最小值的方案數為c(n-1, k-1)。第2個數為最小值的方案數為c(n-2, k-1)。
第i個數為最小值的方案數為c(n-i, k-1),因為第i個最小了,那麼比第i個數小的數就不能再出現了。
所以就是把所有的a[i]*c(n-i, k-1)求出來再除c(n, k)。
因為結果是*c(n, k)那麼就是求所有的a[i]*c(n-i, k-1)。
#include
#define ll long long
using
namespace std;
#define ll long long
const
int mod=
1000000007
;const
int maxn=
1005
;int fac[maxn]
,facinv[maxn]
;long
long
quickmul
(int a,
int b)
long
longc(
int n,
int m)
void
init()
int a[
1005];
intmain()
sort
(a, a+n)
;for
(int i=
0;i1;i++
)printf
("%lld\n"
,ans);}
}
B Bobby s Bet(期望 組合數)
題目 題意 搖色子遊戲,色子有s面,每一面的數分別是1 s,在y回合裡面是否至少有x回合搖出來的數大於等於r,如果是的話,那我贏w塊錢,否則輸一塊錢,問 我是否能贏錢,能的話出去yes,否則輸出no。題解 算出我總共贏的概率,然後乘以w,這是期望,然後看一下是否比1大就行。算總共贏的概率 首先y回合...
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
數學 組合數學
mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...