POJ 3752 解题报告

来源:互联网 发布:学神it linux视频下载 编辑:程序博客网 时间:2024/06/16 11:14

简单题。主要是题目没给M,N的范围,实际上很小。所以直接模拟就可以。

thestoryofsnow3752Accepted168K16MSC++1195B

/* ID: thestor1 LANG: C++ TASK: poj3752 */#include <iostream>#include <fstream>#include <cmath>#include <cstdio>#include <cstring>#include <limits>#include <string>#include <vector>#include <list>#include <set>#include <map>#include <queue>#include <stack>#include <algorithm>#include <cassert>using namespace std;int main(){int M, N;scanf("%d%d", &M, &N);std::vector<std::vector<char> > matrix(M, std::vector<char>(N, ' '));int r = 0, c = 0, d = 0;char ch = 'A';for (int i = 0; i < M * N; ++i){matrix[r][c] = ch;if (d == 0){c++;if (c >= N || matrix[r][c] != ' '){r++;c--;d = 1;}}else if (d == 1){r++;if (r >= M || matrix[r][c] != ' '){r--;c--;d = 2;}}else if (d == 2){c--;if (c < 0 || matrix[r][c] != ' '){c++;r--;d = 3;}}else{r--;if (r < 0 || matrix[r][c] != ' '){r++;c++;d = 0;}}ch = (ch - 'A' + 1) % 26 + 'A';}for (int r = 0; r < M; ++r){for (int c = 0; c < N; ++c){printf("   %c", matrix[r][c]);}printf("\n");}return 0;  }


0 0
原创粉丝点击