首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AcWing 3208. Z字形扫描(模拟、练习一下重载输入输出)

AcWing 3208. Z字形扫描(模拟、练习一下重载输入输出)

作者头像
glm233
发布2021-03-15 18:42:51
发布2021-03-15 18:42:51
3340
举报

可以把每个斜着的列存入变长数组然后正着输出一次反着输出一次,顺手练习了一下运算符重载~

代码语言:javascript
复制
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
vector<int>v[N];
int n,a[N/2][N/2];
bool f(int x,int y){
    return x>=1&&x<=n&&y>=1&&y<=n;
}
ostream & operator <<(ostream & os,vector<int>&v){
    for(auto it:v){
        os<<it<<" ";
    }
    return os;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=2*n-1;i++){
        int st,ed;
        if(i>=n)st=n,ed=i-n+1;
        else st=i,ed=1;
        while(f(st,ed)){
            v[i].push_back(a[st][ed]);
            st--,ed++;
        }
    }
    int flag=0;
    for(int i=1;i<=2*n-1;i++){
        if(!flag)cout<<v[i];
        else{
            reverse(v[i].begin(),v[i].end());
            cout<<v[i];
        }
        flag^=1;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档