• Codeforces Round #546 (Div. 2) C Nastya Is Transposing Matrices


      题意是给矩阵a和矩阵b,问能否把a矩阵里的k*k子矩阵转置,得到b矩阵,转置意思就是k*k的子矩阵里,a[i][j]和a[j][i]互换位置。

     在纸上画几组样例,就可以观察发现,我们可以通过每次只对2*2的子矩阵进行转置,就能将一条对角线的任意一个元素放在该对角线的任意位置,也就是一条对角线里的元素是可以互相交换的,所以我们只需要把所有a和b矩阵的所有对角线都找出来,一条条对比即可。

    #include<bits/stdc++.h>
    using namespace std;
    int a[505][505],b[505][505];
    int vis[505][505];
    vector<int>v1[1000],v2[1000];
    int main()
    {
        int n,m,cnt=0;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                scanf("%d",&(a[i][j]));
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                scanf("%d",&(b[i][j]));
    
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                if(!vis[i][j])
                {
                    cnt++;
                    int v=i,k=j;
                    for(;v<=n&&k>=1;v++,k--)
                    {
                        vis[v][k]=1;
                        v1[cnt].push_back(a[v][k]);
                    }
                }
            }
        int tmp=0;
        memset(vis,0,sizeof(vis));
          for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                if(!vis[i][j])
                {
                    tmp++;
                    int v=i,k=j;
                    for(;v<=n&&k>=1;v++,k--)
                    {
                        vis[v][k]=1;
                        v2[tmp].push_back(b[v][k]);
                    }
                }
            }
            for(int i=1;i<=cnt;i++)
            {
                sort(v1[i].begin(),v1[i].end());
                sort(v2[i].begin(),v2[i].end());
                int sz=v1[i].size();
                for(int j=0;j<sz;j++)
                    if(v1[i][j]!=v2[i][j])
                    {
                        cout<<"NO"<<endl;
                        return 0;
                    }
            }
            cout<<"YES"<<endl;
    
    }
  • 相关阅读:
    asp.net禁用頁面緩存
    SQL排序方法,EXEC法和CASE WHEN法
    Web Service 基础连接已经关闭的解决方案
    用CSS写TABLE边框
    SQL2000分页存储过程,针对表,2005有自带的row_number
    GridView RowCommand事件中取得當前行
    取得Repeter中數據項,如TR
    FireFox自动撑高层解决方案
    PostgreSql 添加语言语法
    CSS设置图片居中
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754791.html
Copyright © 2020-2023  润新知