zoukankan      html  css  js  c++  java
  • 概率 高消light oj 1151

    t个样例

    n个楼梯或蛇;

    a b

    刚好走到a会到b;

    问走到100期望;

    dp[i]   i到100的期望

    这一点没奇怪的东西 dp[i]=1/6(dp[i+1]+dp[i+2]..+6);

             有               dp[i]=dp[tp[i]];

    6*dp[i]-dp[i+1]...=6;

    dp[i]-dp[tp[i]]=0;

    方程  然后消一下

      1 #include<stdio.h>
      2 #include<algorithm>
      3 #include<string.h>
      4 #include<math.h>
      5 
      6 using namespace std;
      7 
      8 int p[200];
      9 double a[200][200];
     10 double x[200]; 解
     11 bool free_x[200];
     12 #define esp  1e-8
     13 
     14 int Gauss(int r,int c)
     15 {
     16     for(int i=1;i<=c;i++)
     17     {
     18         x[i]=0;
     19         free_x[i]=true;        
     20     }
     21     int  col=1,k;
     22 
     23     for(k=1;k<=r&&col<c;k++,col++)
     24     {
     25         int mar=k;
     26         for(int i=k+1;i<=r;i++)
     27         {
     28             if(fabs(a[i][col])>fabs(a[mar][col]))
     29                 mar=i;
     30         }
     31         if(mar!=k)
     32             for(int j=k;j<=c;j++)
     33             {
     34                 double tmp=a[k][j];
     35                 a[k][j]=a[mar][j];
     36                 a[mar][j]=tmp;
     37             }
     38         if(fabs(a[k][col])<esp)
     39         {
     40             k--;
     41             continue;
     42         }
     43         for(int i=k+1;i<=r;i++)
     44             if(fabs(a[i][col])>esp)
     45             {
     46                 double tmp=a[i][col]/a[mar][col];
     47                 for(int j=col;j<=c;j++)
     48                     a[i][j]-=a[k][j]*tmp;
     49             }
     50     }
     51     for(int i=k;i<=r;i++)
     52         if(fabs(a[i][c])>esp)
     53             return 0;
     54     for(int i=c-1;i>=1;i--)
     55     {
     56         double tmp=a[i][c];
     57         for(int j=i+1;j<c;j++)
     58             if(fabs(a[i][j])>esp)
     59                 tmp-=x[j]*a[i][j];
     60         x[i]=tmp/a[i][i];
     61     }
     62     return 1;
     63 }
     64 int main()
     65 {
     66     int t,ca;
     67     scanf("%d",&t);
     68     ca=1;
     69 
     70     while(t--)
     71     {
     72         for(int i=1;i<=100;i++)
     73             p[i]=i;
     74         int n;
     75         scanf("%d",&n);
     76         for(int i=1;i<=n;i++)
     77         {
     78             int a,b;
     79             scanf("%d%d",&a,&b);
     80             p[a]=b;
     81         }
     82         memset(a,0,sizeof(a));
     83         a[100][100]=1;  //这边构造一下 x[100]=0;
     84         a[100][101]=0;
     85         for(int i=1;i<100;i++)
     86         {
     87             if(p[i]==i)
     88             {
     89                 int k=0;
     90                 for(int j=i+1;j<=100&&j<=i+6;j++)
     91                 {
     92                     a[i][j]-=1;
     93                     k++;
     94                 }
     95                 a[i][i]+=k;
     96                 a[i][101]+=6;
     97             }
     98             else
     99             {
    100                 a[i][i]+=1;
    101                 a[i][p[i]]-=1;    
    102             }            
    103         }
    104         Gauss(100,101);
    105         printf("Case %d: %.8lf
    ",ca++,x[1]);        
    106     }
    107 
    108     return 0;
    109 }
  • 相关阅读:
    同步、异步、阻塞和非阻塞区别
    SpringMVC文件上传实现
    Java注解入门
    SpringMVC实现一个controller写多个方法
    提高tomcat的并发能力
    人一生追求的是什么
    python class对象转换成json/字典
    python可分组字典
    python enumerate函数用法
    Python特殊语法--filter、map、reduce、lambda
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6093574.html
Copyright © 2011-2022 走看看