zoukankan      html  css  js  c++  java
  • 循环赛日程表

    一道分治典型题

    链接:我不知道

    ------------------------------

    如果把一个表分成四分,就很容易观察到规律

    -------------------------------

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int ma[1025][1025];
    int n;
    int k;
    int temp;
    void dfs(int n){
        if(n==2){
            ma[1][1]=1;
            ma[1][2]=2;
            ma[2][1]=2;
            ma[2][2]=1;
            return ;
        }
        else{
            dfs(n/2);
            int  z=n/2;
            for(int i=1;i<=z;++i){
                for(int j=1;j<=z;++j){
                    ma[i+z][j]=ma[i][j]+z;
                    ma[i][j+z]=ma[i][j]+z;
                    ma[i+z][j+z]=ma[i][j];
                }
            }
            return ;
        }
    }
    int mi(int k){
        int ans=1;
        int temp=2;
        while(k){
            if(k%2){
                ans*=temp;
            }
            temp+=temp;
            k=k>>1;
        }
        return ans;
    }
    int main(){
        cin>>k;
        n=mi(k);
        dfs(n);
        for(int i=1;i<=n;++i){
            for(int j=1;j<=n;++j){
                printf("%d ",ma[i][j]);
            }
            cout<<endl;
        }
        return 0;
    } 
    Ac
  • 相关阅读:
    软件工程(2018)第一次作业
    SQA计划
    再冲刺
    第三次冲刺
    第二次冲刺
    小组第一次冲刺
    团队合作初体验
    关于git的认识与想法
    我的第一篇博客
    SQA计划和系统测试规程
  • 原文地址:https://www.cnblogs.com/For-Miku/p/12725764.html
Copyright © 2011-2022 走看看