zoukankan      html  css  js  c++  java
  • HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)

    题目地址:HDU 4920

    对这个题简直无语到极点。

    。竟然O(n^3)的复杂度能过。。。。方法有三。。

    1:进行输入优化和输出优化。

    (前提是你的输入优化不能太搓。。。)

    2:利用缓存优化。。详情请看该论文。大体就是将后两个for循环换过来,让坐标改变的频率降下来。

    3:叉姐题解中说的正规方法。

    。利用biset存储,进行预处理。

    。(事实上我还没看懂。。

    我仅仅写了个另外一种。。

    。代码例如以下。共勉。。奇妙的小代码。。

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <stdlib.h>
    #include <math.h>
    #include <ctype.h>
    #include <queue>
    #include <map>
    #include <set>
    #include <algorithm>
    
    using namespace std;
    int a[900][900], b[900][900], mp[900][900];
    int main()
    {
        int n, i, j, k, x;
        while(scanf("%d",&n)!=EOF)
        {
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    scanf("%d",&x);
                    a[i][j]=x%3;
                }
            }
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    scanf("%d",&x);
                    b[i][j]=x%3;
                }
            }
            memset(mp,0,sizeof(mp));
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    for(k=1;k<=n;k++)
                    {
                        mp[i][k]+=a[i][j]*b[j][k];
                    }
                }
            }
            for(i=1;i<=n;i++)
            {
                for(j=1;j<n;j++)
                {
                    printf("%d ",mp[i][j]%3);
                }
                printf("%d
    ",mp[i][n]%3);
            }
        }
        return 0;
    }
    



  • 相关阅读:
    区块链:交易收发机制
    区块链:POA委员会选举机制
    区块链:POA区块生成机制
    区块链:最小可行区块链原理解析2
    基于 react 的Java web 应用—— 组件复用(后续需更新)
    struts2验证码
    struts2验证码
    struts2验证码
    struts2验证码
    axis2 411
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6851749.html
Copyright © 2011-2022 走看看