hdu 3521

来源:互联网 发布:painter mac 编辑:程序博客网 时间:2024/06/03 14:12

    题意太好懂了,就不多说了。悲剧的是当时愣是没注意到它的时限这么大:

Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

所以就没敢去做。。。TAT  思路很简单,直接模拟就行了。

 

#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int M=150;double matrix[M][M],ans[M][M],matrix1[M][M];//__int64 temp;int n,m;void mulmatrix(int p){    int i,j,k;    double c[M][M];    for(i=1;i<=n;i++)    {        for(j=1;j<=n;j++)        {            c[i][j]=0;            for(k=1;k<=n;k++)                c[i][j]+=matrix1[i][k]*matrix[k][j];        }    }    for(i=1;i<=n;i++)    {        for(j=1;j<=n;j++)            matrix1[i][j]=c[i][j]/(p*1.0);    }}void addmatrix(){    int i,j;    for(i=1;i<=n;i++)    {        for(j=1;j<=n;j++)            ans[i][j]+=matrix1[i][j];    }}void read(){    int i,j;    for(i=1;i<=n;i++)    {        for(j=1;j<=n;j++)            printf("%.2lf ",ans[i][j]);        printf("\n");    }}int main(){    while(scanf("%d",&n),n)    {    //    temp=1;        int i,j,k;        for(i=1;i<=n;i++)        {            for(j=1;j<=n;j++)            {                scanf("%lf",&matrix[i][j]);                if(i==j) {ans[i][j]=matrix1[i][j]=1.0;}                else {ans[i][j]=matrix1[i][j]=0;}            }        }        for(k=1;k<50;k++)        {            mulmatrix(k);            addmatrix();        }        read();    }    return 0;}


 

 

额。。。不知出了神马问题。。。弄成这样的字体颜色。。。大家将就这看吧— —|||

         

原创粉丝点击