zoukankan      html  css  js  c++  java
  • nyoj 33 蛇形填数

    蛇形填数

    时间限制:3000 ms  |            内存限制:65535 KB
    难度:3
     
    描述
    在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7  6  5 4
     
    输入
    直接输入方陈的维数,即n的值。(n<=100)
    输出
    输出结果是蛇形方陈。
    样例输入
    3
    样例输出
    7 8 1
    6 9 2
    5 4 3

     1 #include <iostream>
     2 using namespace std;
     3 int a[105][105], visit[105][105],temp = 1, n;
     4 
     5 /*void dfs(int i, int j){
     6     a[i][j] = temp;
     7     visit[i][j] = 1;
     8     temp++;
     9     if(i+1 <= n-1 && visit[i+1][j] == 0)
    10         dfs(i+1, j);
    11     if(j-1 >= 0 && visit[i][j-1] == 0)
    12         dfs(i, j-1);
    13     if(i-1 >= 0 && visit[i-1][j] == 0)
    14         dfs(i-1, j);
    15     if(j+1 <= n-1 && visit[i][j+1] == 0)
    16         dfs(i, j+1);
    17 }
    18 */
    19 
    20 int main(){
    21     cin >> n;
    22     int i = 0, j = n-1;
    23     a[0][n-1] = temp;
    24     visit[0][n-1] = 1;
    25     //dfs(0, n-1);
    26     while(temp < n*n){
    27         while(i+1 < n && visit[i+1][j] == 0){
    28             visit[i+1][j] = 1;
    29             a[++i][j] = ++temp;
    30         }
    31             
    32         while(j-1 >= 0 && visit[i][j-1] == 0){
    33             visit[i][j-1] = 1;
    34             a[i][--j] = ++temp;
    35         }
    36             
    37         while(i-1 >= 0 && visit[i-1][j] == 0){
    38             visit[i-1][j] = 1;
    39             a[--i][j] = ++temp;
    40         }
    41             
    42         while(j+1 < n && visit[i][j+1] == 0){
    43             visit[i][j+1] = 1;
    44             a[i][++j] = ++temp;
    45         }
    46             
    47     }
    48     for(int i = 0; i < n; i++){
    49         for(int j = 0; j < n; j++)
    50             cout << a[i][j] << " ";
    51         cout << endl;
    52     }
    53     return 0; 
    54     
    55 }
  • 相关阅读:
    ORA-28040: No matching authentication protocol
    kettle增量抽取数据--高效抽取方式
    为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?
    echarts饼图指示线文字换行
    数据库概论
    Java学习笔记
    案例分析
    软件工程作业3
    软件工程作业2
    软件工程作业1
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5576189.html
Copyright © 2011-2022 走看看