zoukankan      html  css  js  c++  java
  • BZOJ3534:[SDOI2014]重建——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3534

    https://www.luogu.org/problemnew/show/P3317

    T国有N个城市,用若干双向道路连接。一对城市之间至多存在一条道路。
    在一次洪水之后,一些道路受损无法通行。虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回。
    辛运的是,此前T国政府调查过每条道路的强度,现在他们希望只利用这些信息估计灾情。具体地,给定每条道路在洪水后仍能通行的概率,请计算仍能通行的道路恰有N-1条,且能联通所有城市的概率。

    https://stone41123.blog.luogu.org/solution-p3317吧……

    我也没啥好讲的了。

    #include<cstdio>
    #include<queue>
    #include<cstring>
    #include<cmath>
    #include<cctype>
    #include<algorithm>
    using namespace std;
    typedef double dl;
    const dl eps=1e-10;
    const int N=51;
    dl x[N][N],ans=1;
    dl gauss(int n){
        dl res=1;
        for(int i=1;i<=n;i++){
            int l=i;
            for(int j=i+1;j<=n;j++){
                if(fabs(x[l][i])<fabs(x[j][i]))l=j;
            }
            if(l!=i){
                for(int j=i;j<=n;j++)
                    swap(x[i][j],x[l][j]);
            res=-res;
            }
            for(int j=i+1;j<=n;j++){
                dl t=x[j][i]/x[i][i];
                for(int k=i;k<=n;k++)
                    x[j][k]-=t*x[i][k];
            }
        if(fabs(x[i][i])<eps)return 0;
        }
        for(int i=1;i<=n;i++)res*=x[i][i];
        return res;
    }
    int main(){
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            scanf("%lf",&x[i][j]);
            if(fabs(x[i][j])<eps)x[i][j]=eps;
            if(fabs(1-x[i][j])<eps)x[i][j]=1-eps;
            if(i<j)ans*=1-x[i][j];
            x[i][j]/=1-x[i][j];
        }
        }
        for(int i=1;i<=n;i++){
        x[i][i]=0;
        for(int j=1;j<=n;j++){
            if(i!=j)
            x[i][i]-=x[i][j];
        }
        }
        ans*=gauss(n-1);
        printf("%.10lf
    ",fabs(ans));
        return 0;
    }

    +++++++++++++++++++++++++++++++++++++++++++

    +本文作者:luyouqi233。               +

    +欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/ +

    +++++++++++++++++++++++++++++++++++++++++++

  • 相关阅读:
    应用程序跳转
    百度地图集成
    导航 -MapKit
    导航
    定位
    ApexSql Log使用体会
    Oracle学习 第16天
    上来冒个泡吧
    Oracle学习 实战心得总结
    好久没上来冒个泡了,整整一个半月
  • 原文地址:https://www.cnblogs.com/luyouqi233/p/8982095.html
Copyright © 2011-2022 走看看