題目:
題意:搖色子遊戲,色子有s面,每一面的數分別是1-s,在y回合裡面是否至少有x回合搖出來的數大於等於r,如果是的話,那我贏w塊錢,否則輸一塊錢,問:我是否能贏錢,能的話出去yes,否則輸出no。
題解:算出我總共贏的概率,然後乘以w,這是期望,然後看一下是否比1大就行。
算總共贏的概率:首先y回合總共有pow(s,y)中方案,那麼算出我能贏的方案數,比一下就行。
算我贏的方案數:首先列舉我從贏x-y局,然後c(y,x)是我贏在y回合中贏x回合的方案數,然後再乘以我每一回合贏的時候有幾種贏法就行了。
#include
#include
using
namespace std;
typedef
long
long ll;
const
int n=
1e6+7;
const ll inf=
(1ll
<<32)
-1;const ll mod=
1e9+7;
ll ma[12]
[12];
void
get_zuhe()
//求組合數
}ll qpow
(ll a,ll k)
//快速冪
return ans;
}int
main()
p=1.0*p*w;
//看是否比1大
if(p>1)
puts
("yes");
else
puts
("no");
}return0;
}
期望 組合數學
題目大意 思路 求出所有以第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 ...
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
吉首 組合數 求組合數因子個數
時間限制 1 sec 記憶體限制 128 mb 求組合數c n,m 以及c n,m 因子個數。n和m,其中0 m n 50,以eof結束。該組合數結果。3 2 4 23 2 6 4先利用楊輝三角求出組合數,然後就是求出因子數了 求因子數 素數分解的唯一性,乙個數可以被分解成若干素數相乘 p1 x1 ...