现在只是超时,样例对了
```cpp
#include<cstdio>
#include<iostream>
using namespace std;
int m,n,a[60],cun[60][2],jir,rp[60];
long long ans=0;
void dfs(int k)//k表示庄家
{
for(int i=1;i<=m;i++){//枚举每一张牌
int ji=k;
for(int j=a[i];j>2;j--){//数玩家
ji=cun[ji][2];
}
int jic=cun[ji][2],jji=ji;
cun[ji][2]=cun[cun[ji][2]][2];
ji=cun[ji][2];
jir--;
if(jir==1){
rp[ji]++;//统计每个人胜的次数
ans++;
// for(int i=1;i<=n;i++){
// cun[i][2]=i+1;
// }
// cun[n][2]=1;
}
else{
dfs(ji);//这个人是庄家
}
jir++;
cun[jji][2]=jic;
}
}
int main(){
cin>>n>>m;
jir=n;
for(int i=1;i<=m;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cun[i][1]=i;
cun[i][2]=i+1;
}
cun[n][2]=1;
dfs(1);
for(int i=1;i<=n;i++){
printf("%.2lf%% ",rp[i]*100*1.0/ans);
}
}
```
by lqhsr @ 2018-10-23 19:28:37
@[lqhsr](/space/show?uid=111197) 你觉得这道题适合用模拟吗
by 风华正茂 @ 2018-10-23 19:29:34
@[风华正茂](/space/show?uid=113510)
可是我根本不会概率DP啊
by lqhsr @ 2018-10-23 19:42:23
@[风华正茂](/space/show?uid=113510)
一起想下怎么记忆化
by lqhsr @ 2018-10-23 19:43:07
@[lqhsr](/space/show?uid=111197) 我不知道怎么用记忆化呀( ⊙ o ⊙ )
by 风华正茂 @ 2018-10-23 19:56:01
@[lqhsr](/space/show?uid=111197) 这道题你可以倒着递推,算概率时用一个数组存一下就是了
by 风华正茂 @ 2018-10-23 19:57:14
@[风华正茂](/space/show?uid=113510)
假的
巨佬您绝对知道
by lqhsr @ 2018-10-23 19:57:41
@[lqhsr](/space/show?uid=111197) 您才是巨佬,我只是蒟蒻
by 风华正茂 @ 2018-10-23 19:58:35
@[风华正茂](/space/show?uid=113510)
巨佬%%%
我连打羽毛球都被您吊打
by lqhsr @ 2018-10-23 20:05:42
@[lqhsr](/space/show?uid=111197)
不会,您就,学鸭,,,
明知道这题要用概率dp,用搜索会TLE 为什么还要做搜索呢,,,
您是觉得您脸比较白rp max了写个搜索就能过嘛,,,
by 杰西卡卡卡 @ 2018-10-23 20:10:41