zoukankan      html  css  js  c++  java
  • AcWing每日一题--Z字形扫描

    https://www.acwing.com/problem/content/3211/

    直接看成两个三角形(略显复杂)

     1 #include<iostream>
     2 using namespace std;
     3 const int N=500;
     4 int a[N][N];
     5 int main(void){
     6     int n;
     7     cin>>n;
     8     for(int i=1;i<=n;i++){
     9         for(int j=1;j<=n;j++){
    10             cin>>a[i][j];
    11         }
    12     }
    13     for(int i=1;i<=n;i++){
    14         if(i%2){
    15             int x=i,y=1;
    16             while(x>0){
    17                 cout<<a[x][y]<<" ";
    18                 x--,y++;
    19             }
    20         }else{
    21             int x=1,y=i;
    22             while(y>0){
    23                 cout<<a[x][y]<<" ";
    24                 x++,y--;
    25             }
    26         }
    27     }  
    28     for(int i=n+1;i<=2*n-1;i++){
    29         if(i%2){
    30             int x=n,y=i-n+1;
    31             while(y<=n){
    32                 cout<<a[x][y]<<" ";
    33                 x--,y++;
    34             }
    35         }else{
    36             int x=i-n+1,y=n;
    37             while(x<=n){
    38                 cout<<a[x][y]<<" ";
    39                 x++,y--;
    40             }
    41         }
    42     }
    43     
    44     return 0;
    45 }

    将矩阵扩展到2n*2n,如此便不需要将矩阵分为两个三角形来考虑了。

     1 #include<iostream>
     2 using namespace std;
     3 const int N=500;
     4 int a[N][N];
     5 int main(void){
     6     int n;
     7     cin>>n;
     8     for(int i=1;i<=n;i++){
     9         for(int j=1;j<=n;j++){
    10             cin>>a[i][j];
    11         }
    12     }
    13     for(int i=1;i<=2*n;i++){
    14         if(i%2){
    15             int x=i,y=1;
    16             while(x>0){
    17                 if(x<=n&&y<=n){
    18                     cout<<a[x][y]<<" ";
    19                 }
    20                 x--,y++;
    21             }
    22         }else{
    23             int x=1,y=i;
    24             while(y>0){
    25                 if(x<=n&&y<=n){
    26                     cout<<a[x][y]<<" ";
    27                 }
    28                 x++,y--;
    29             }
    30         }
    31     }
    32     
    33     return 0;
    34 }
  • 相关阅读:
    Java 1 (JVM、JRE、JDK之间的关系)
    Java 0 (jdk下载安装及环境配置)
    推荐之链接
    idea 2019激活码
    Mock数据使用的Util
    mybatis慢查询配置
    logback参考配置
    Linux网络实时监控配置
    jmeter插件JMeterPlugins-Standard 压力测试
    ZoneDateTime 转换Date
  • 原文地址:https://www.cnblogs.com/greenofyu/p/14555806.html
Copyright © 2011-2022 走看看