BZOJ 3191 卡牌游戏

Posted ziliuziliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ 3191 卡牌游戏相关的知识,希望对你有一定的参考价值。

有关约瑟夫环的问题一般需要考虑重标号,就是上一个被砍的人后面那个人开始重新0,1,2...这样子标

p[i][j][k]表示第i轮,原来编号为j(0->n-1)的人的新的编号为k的概率

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 55
using namespace std;
int n,m,s[maxn];
double p[maxn][maxn][maxn];
char ch;
int main()
{
    scanf("%d%d",&n,&m);ch=%;
    for (int i=0;i<m;i++) scanf("%d",&s[i]);
    for (int i=0;i<n;i++) p[0][i][i]=1.00;
    for (int i=0;i<n-1;i++)
        for (int j=0;j<n;j++)
            for (int k=0;k<n-i;k++)
                for (int l=0;l<m;l++)
                {
                    int A=(s[l]-1)%(n-i),l1=k-A-1,l2=n-i-1-A+k,kr=p[i][j][k];
                    if (A<k) p[i+1][j][k-A-1]+=p[i][j][k]/m;
                    else if (A>k) p[i+1][j][n-i-1-A+k]+=p[i][j][k]/m;
                }
    for (int i=0;i<n-1;i++) {printf("%.2lf",p[n-1][i][0]*100);printf("%c ",ch);}
    printf("%.2lf%\n",p[n-1][n-1][0]*100);
    return 0;
}

 

以上是关于BZOJ 3191 卡牌游戏的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ3191JLOI2013卡牌游戏 [DP]

[bzoj3191] [JLOI2013]卡牌游戏

BZOJ 3191 卡牌游戏

bzoj3191 [JLOI2013]卡牌游戏

bzoj 3191: [JLOI2013]卡牌游戏

bzoj千题计划202:bzoj3191: [JLOI2013]卡牌游戏