基础训练 回形取数

Posted a-little-nut

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础训练 回形取数相关的知识,希望对你有一定的参考价值。

回形取数

/*逆时针读数,但每读过一个就标志已读*/
#include<iostream>
#include<vector>
using namespace std;
int main(){
    int m, n, cnt=1, x=0, y=0, flag=0;
    cin>>m>>n;
    vector<vector<int> > M(m, vector<int>(n, 0)), visited(m, vector<int>(n,0));
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            cin>>M[i][j];
        cout<<M[0][0]; visited[0][0]=1;
    while(cnt<m*n){
        while(x+1<m&&!visited[x+1][y]){
            visited[++x][y]=1; cnt++; 
            cout<<" "<<M[x][y]; 
        }
        while(y+1<n&&!visited[x][y+1]){
            visited[x][++y]=1; cnt++;
            cout<<" "<<M[x][y];
        }
        while(x-1>=0&&!visited[x-1][y]){
            visited[--x][y]=1; cnt++;
            cout<<" "<<M[x][y];
        }
        while(y-1>=0&&!visited[x][y-1]){
            visited[x][--y]=1; cnt++;
            cout<<" "<<M[x][y];
        }
    }
    cout<<endl;
    return 0;
}

以上是关于基础训练 回形取数的主要内容,如果未能解决你的问题,请参考以下文章

基础练习 回形取数

基础练习 回形取数

蓝桥杯 基础练习 BASIC-25 回形取数

[蓝桥杯][基础练习VIP]回形取数

十四:回形取数

回形取数