dp神題啊!剛考完試時波波說:「t3改不出來明天就別改了。」
似乎波波已經預料到這題很難改了?
首先設f[i][j][k][o]代表前i+j+k輪選了i個石頭,j個布,k個剪刀並且下乙個要選o的概率,
然後便可以列舉r(敵人),i,j,k,於是:
可以理解為把這n個人拍在一起
這裡o的範圍是[0,3],o==0代表的其實是g陣列(取i,j,k的概率)
注意要從o轉移到o,因為這樣可以壓行順便g陣列搞出來
有了f陣列,接下來考慮如何統計答案:
其實就是把整個過程走一遍,三種情況取max,
最後乘上概率也就是那個組合數。(期望題也是硬傷啊~)
最後注意一下組合數要開long long
1 #include2#define int long long
3#define aa cout<
#define dd cout<
#define m(a) memset(a,0,sizeof(a))
6using
namespace
std;
7const
int n=55;8
intn,c[n][n];
9long
double tot,p[n][4],f[n][n][n][4
],ans;
10signed main()
1122 c[0][0]=1;23
for(int i=1;i<=n;i++)
2428 f[0][0][0][0]=1;29
for(int r=1;r<=n;r++)
3045}46
}47}48
}49for(int i=0;i)
5062 ans+=sum/(double)(c[n][i+j+k]*c[n-i-j-k][1
]);63}64
}65}66 printf("
%0.10lf
",ans);
67return0;
68 }
NOIP模擬測試15
t2讀題跪掉了好可惜 qaq problem a 建設城市 插板加容斥搞個不停,得到柿子 sum limits 1 c times c n i 預處理階乘和階乘逆元,ning幹。1 include 2 define ll long long34 const int d 998244353 5 ll ...
NOIP模擬(20171024)T3 數學
求滿足方程ax xa mod2n 的解的個數 n 30,a 109詢問組數t 1000 引理一 若a,b 均為奇數,且a2 k 1 b2k 1 mod2n 則a b mod2n 證明 a 2k 1 b2k 1 mod2n a 2k 1 b2k 1 0 mod2n a b a2k a2k 1b a2k...
NOIP模擬(20171031)T3 紙帶
有乙個紙帶 每次區間染色,同乙個地方後染的顏色覆蓋先染的,求最後紙帶上顏色種類數。咦,這不是線段樹嗎?咦,倒過來做好像很方便啊?咦,離散化有坑?區間塗色,若該顏色所在區間均被染色,則該顏色按原順序操作後會被後面的顏色覆蓋 注意離散化 本來三個顏色3 8,2 5,7 9,最後6號點上顏色是1 離散化後...