zoukankan      html  css  js  c++  java
  • Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-C. Magic Grid-构造

    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-C. Magic Grid-构造


    【Problem Description】

    ​ 给你一个(n),构造一个(n imes n)的矩阵,使其满足任意一行,或一列的异或值相同。保证(n)能被(4)整除。

    【Solution】

    ​ 可以发现,从(0)开始,每(4)个连续数的异或值为(0),所以可以很容易使得每一行的异或值等于(0)

    ​ 列向可以发现,从(0)开始,公差为(4)的,每(4)个数的异或值也为(0)。即(0oplus4oplus8oplus12=0)。所以满足条件的矩阵形如:

    [left[egin{matrix} 0&1&2&3&32&33&34&35&\ 4&5&6&7&36&37&38&39&\ 8&9&10&11&40&41&42&43&\ 12&13&14&15&44&45&46&47&\ 16&17&18&19&48&49&50&51&\ 20&21&22&23&52&53&54&55&\ 24&25&26&27&56&57&58&59&\ 28&29&30&31&60&61&62&63&\ end{matrix} ight] ]


    【Code】

    /*
     * @Author: Simon 
     * @Date: 2019-08-26 18:38:05 
     * @Last Modified by: Simon
     * @Last Modified time: 2019-08-26 19:02:53
     */
    #include<bits/stdc++.h>
    using namespace std;
    typedef int Int;
    #define int long long
    #define INF 0x3f3f3f3f
    #define maxn 2005
    int a[maxn][maxn];
    Int main(){
    #ifndef ONLINE_JUDGE
        //freopen("input.in","r",stdin);
        //freopen("output.out","w",stdout);
    #endif
        ios::sync_with_stdio(false);
        cin.tie(0);
        int n;cin>>n;
        for(int i=0;i<n;i++) a[0][i]=i/4*n*4+i%4;
        for(int i=1;i<n;i++){
            for(int j=0;j<n;j++){
                a[i][j]=a[i-1][j]+4;
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                cout<<a[i][j]<<' ';
            }
            cout<<endl;
        }
    #ifndef ONLINE_JUDGE
        system("pause");
    #endif
        return 0;
    }
    
  • 相关阅读:
    SQLite基础-7.子句(一)
    SQLite基础-8.子句(二)
    SQLite基础-6.运算符
    SQLite基础-5.数据操作语言
    SQLite基础-4.数据定义语言(DDL)
    SQLite基础-3.语法与数据类型
    IDEA操作之FileHeager设置
    IDEA操作之test case coverage的方法
    IDEA插件之JavaDoc
    IDEA插件之JProfiler
  • 原文地址:https://www.cnblogs.com/--Simon/p/11414317.html
Copyright © 2011-2022 走看看