zoukankan      html  css  js  c++  java
  • BZOJ 1444: [Jsoi2009]有趣的游戏

    1444: [Jsoi2009]有趣的游戏

    Time Limit: 10 Sec  Memory Limit: 64 MB
    Submit: 1114  Solved: 386
    [Submit][Status][Discuss]

    Description

    Input

    注意 是0<=P

    Output

    Sample Input


    Sample Output


    HINT

     

    30%的数据保证, n ≤ 2. 50%的数据保证, n ≤ 5. 100%的数据保证, n , l, m≤ 10.

    Source

     
    [Submit][Status][Discuss]

    先做AC自动机,然后本来想gauss,但是听说做50次自乘就行,那岂不是贼简单。

     1 #include<cstdio>
     2 #include<cstring>
     3 #define siz 125
     4 char s[15]; double d[15],f[siz][siz],p[siz][siz];
     5 int n,m,l,q[siz],hd,tl,fl[siz],ch[siz][15],ed[siz],bp[15],tot=1;
     6 main(){
     7     scanf("%d%d%d",&n,&l,&m);
     8     for(int j=0,x,y;j<m;++j)
     9         scanf("%d%d",&x,&y),d[j]=1.0*x/y;
    10     for(int j=1,t;j<=n;++j){
    11         scanf("%s",s);t=1;
    12         for(int i=0;i<l;++i){
    13             if(!ch[t][s[i]-'A'])
    14                 ch[t][s[i]-'A']=++tot;
    15             t=ch[t][s[i]-'A'];
    16         }
    17         ed[t]=j,bp[j]=t;
    18     }
    19     for(int j=0;j<m;++j)
    20         if(!ch[1][j])ch[1][j]=1;
    21         else fl[q[tl++]=ch[1][j]]=1;
    22     while(hd!=tl){
    23         int t=q[hd++];
    24         for(int j=0;j<m;++j)
    25             if(!ch[t][j])ch[t][j]=ch[fl[t]][j];
    26             else fl[q[tl++]=ch[t][j]]=ch[fl[t]][j];
    27     }
    28     for(int i=1;i<=tot;++i)
    29         if(!ed[i])for(int j=0;j<m;++j)
    30             f[i][ch[i][j]]+=d[j];
    31         else f[i][i]=1;
    32     for(int t=1;t<=50;++t){
    33         memset(p,0,sizeof(p));
    34         for(int k=1;k<=tot;++k)
    35             for(int i=1;i<=tot;++i)
    36                 for(int j=1;j<=tot;++j)
    37                     p[i][j]+=f[i][k]*f[k][j];
    38         memcpy(f,p,sizeof(f));
    39     }
    40     for(int i=1;i<=n;++i)printf("%.2lf
    ",f[1][bp[i]]);
    41 }
    42 

    @Author: YouSiki

  • 相关阅读:
    搭建Keil C51开发环境
    源码分析之Handler
    Android中的算法
    Android中的数据结构
    高级UI-UI绘制流程
    高级UI-Path和PathMeasure
    高级UI-画板Canvas
    高级UI-滤镜和颜色通道
    高级UI-高级渲染
    高级UI-画笔Paint
  • 原文地址:https://www.cnblogs.com/yousiki/p/6476418.html
Copyright © 2011-2022 走看看