hdu 4920

来源:互联网 发布:JSON键值对转java对象 编辑:程序博客网 时间:2024/05/27 20:23

http://acm.hdu.edu.cn/showproblem.php?pid=4920

给定两个n阶矩阵,求矩阵相乘后模3.

直接搞肯定会超时

特殊处理1和2的情况

实际上是水过的.....


貌似bitset这样的可搞

http://blog.csdn.net/keshuai19940722/article/details/38391913

#include <cstdlib>#include <iostream>using namespace std; int a[801][801],b[801][801],c[801][801],b1[801][801];int main(){    int i,j,k,n,temp,ans;          while ((scanf("%d",&n))!= EOF )    {              for (i=1;i<=n;i++)             for (j=1;j<=n;j++)           {               scanf("%d",&temp);               a[i][j]=temp%3;           }          for (i=1;i<=n;i++)             for (j=1;j<=n;j++)           {               scanf("%d",&temp);               b[i][j]=temp%3;               b1[i][j]=(temp*2)%3;           }                          /* for (i=1;i<=n;i++)               for(j=1;j<=n;j++)                  {                      ans = 0;                     for(k=1;k<=n;k++)                         ans+=a[i][k]*b[k][j];                     ans = ans % 3;                     printf("%d ",ans);                      if (j==n) printf("\n");                  }*/          memset(c,0,sizeof(c));          for (i=1;i<=n;i++)              for (j=1;j<=n;j++)              {                  if (a[i][j]==1)                          for (k=1;k<=n;k++) c[i][k]+=b[j][k];                  else if (a[i][j]==2)                          for (k=1;k<=n;k++) c[i][k]+=b1[j][k];              }          for (i=1;i<=n;i++)          {              for (j=1;j<=n;j++)                if (j!=n) printf("%d ",c[i][j]%3);                else printf("%d",c[i][j]%3);              printf("\n");          }                        }        return 0;   }


0 0
原创粉丝点击