zoukankan      html  css  js  c++  java
  • bzoj2396 神奇的矩阵(随机化)

    Time Limit: 5 Sec  Memory Limit: 512 MB

        给出三个行数和列数均为N的矩阵A、B、C,判断A*B=C是否成立。

        题目可能包含若干组数据。
        对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A、B、C三个矩阵。

        对于每组数据,若A*B=C成立,则输出Yes,否则No。每个答案占一行。

    Sample Input

    1
    2
    2
    100

    Sample Output

    No

    HINT

        对于90%的数据,N不超过100;

        对于100%的数据,N不超过1000,矩阵中的数字大于等于0小于1000,数据组数不超过5组。


    poj原题......就是改了下数据范围

    详见:blog:poj3318 Matrix Multiplication

    根据这题的数据范围$O(n^2),n<=1000$,每组大概判断17次,错误率$1/2^{17}$

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #define rint register int
    using namespace std;
    #define N 1005
    int i,j,k,n,a[N][N],b[N][N],c[N][N],d[N],e[N],f[N];
    int main(){
        srand(19260817);
        while(scanf("%d",&n)!=EOF){
            for(i=1;i<=n;++i)
                for(j=1;j<=n;++j)
                    scanf("%d",&a[i][j]);
            for(i=1;i<=n;++i)
                for(j=1;j<=n;++j)
                    scanf("%d",&b[i][j]);
            for(i=1;i<=n;++i)
                for(j=1;j<=n;++j)
                    scanf("%d",&c[i][j]);
            for(k=1;k<=17;++k){
                for(i=1;i<=n;++i) d[i]=rand()&1;
                for(e[i=1]=0;i<=n;e[++i]=0)
                    for(j=1;j<=n;++j)
                        e[i]+=c[i][j]*d[j];
                for(f[i=1]=0;i<=n;f[++i]=0)
                    for(j=1;j<=n;++j)
                        f[i]+=b[i][j]*d[j];
                for(i=1;i<=n;++i) d[i]=f[i];
                for(f[i=1]=0;i<=n;f[++i]=0)
                    for(j=1;j<=n;++j)
                        f[i]+=a[i][j]*d[j];
                for(i=1;e[i]==f[i]&&i<=n;++i);
                if(i<=n) break;
            }puts(k>17?"Yes":"No");
        }return 0;
    }
  • 相关阅读:
    笔记-归并排序
    Repeated Substring Pattern
    Assign Cookies
    Number of Boomerangs
    Paint Fence
    Path Sum III
    Valid Word Square
    Sum of Two Integers
    Find All Numbers Disappeared in an Array
    First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/kafuuchino/p/10837452.html
Copyright © 2011-2022 走看看