zoukankan      html  css  js  c++  java
  • 【分治】1325:循环比赛日程表

    今天做了一道题——循环比赛日程表,这是一道分治的题,并不太难,看看样例就懂了。

    首先,我们以表格中心拆分,把表格分成四个部分(如上图所示),你就会惊奇的发现。坐上和右下的部分完全一样,左下和右上的部分也完全一样,并且继续查分的话,这个规律同样适用。

    这个时候,你可能已经有思路了。下面,源代码。

     1 #include<iostream>
     2 using namespace std;
     3 int bg[10086][10086];
     4 int m;
     5 int main()
     6 {
     7     cin>>m;
     8     int i, j;
     9     int n=1<<m;
    10     int k=1, size=1;
    11     bg[0][0]=1;
    12     while (k<=m){
    13         for (i=0; i<size; i++)        //右上角 
    14             for (j=0; j<size; j++)
    15                 bg[i][j+size]=bg[i][j]+size;
    16         for (i=0; i<size; i++)
    17             for (j=0; j<size; j++){
    18                 bg[i+size][j]=bg[i][j+size];
    19                 bg[i+size][j+size]=bg[i][j];
    20             }
    21             size*=2;
    22             k++;
    23     }
    24     for (i=0; i<n; i++){
    25         for (j=0; j<n; j++)
    26             cout<<bg[i][j]<<" ";
    27         cout<<endl;
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    Redis安装配置
    Git本地服务器搭建
    JDK安装配置
    ssh免密登录
    设计模式
    IDEA 快捷键
    LeetCode Sliding Window Maximum
    ElasticSearch 使用小结
    LeetCode Product of Array Except Self
    LeetCode Delete Node in a Linked List
  • 原文地址:https://www.cnblogs.com/Alan-Anders/p/10093329.html
Copyright © 2011-2022 走看看