字母旋转游戏
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 8574   Accepted: 3236

Description

给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:

   A   B   C   D   E   F   G   HV   W   X   Y   Z   A   B   IU   J   K   L   M   N   C   JT   I   H   G   F   E   D   KS   R   Q   P   O   N   M   L

Input

M为行数,N为列数,其中M,N都为大于0的整数。

Output

分行输出相应的结果

Sample Input

4 9

Sample Output

   A   B   C   D   E   F   G   H   IV   W   X   Y   Z   A   B   C   JU   J   I   H   G   F   E   D   KT   S   R   Q   P   O   N   M   L

问题链接:POJ3752 字母旋转游戏。

问题描述:参见上文。

问题分析

  直接模拟,需要解决二维数组遍历和下标计算。对于输入的m和n,不知道其范围,需要一个动态的存储。

程序说明

使用vector实现一个动态的二维数组matrix[][],是一个非常有效的做法。定义数组的代码中包含了数组的初始化。

计算下一个字符,计算下一个坐标的逻辑是套路。

还需要注意的是,按照题意需要输出3个空格来隔开字母,不然就会出现格式错误。

AC的C++语言程序如下:

/* POJ3752 字母旋转游戏 */#include <iostream>
#include <vector>using namespace std;const int ARROWS = 4;
const int RIGHT = 0;
const int DOWN = 1;
const int LEFT = 2;
const int UP = 3;int main()
{int m, n;// 输入数据cin >> m >> n;vector<vector<char> > matrix(m, vector<char>(n, ' '));// 填充处理int arrow = RIGHT, row = 0, col = 0;char c = 'A';for(int i=1; i<=m*n; i++) {matrix[row][col] = c;// 计算下一个字母if(++c > 'Z')c = 'A';// 计算下一个位置if(arrow == RIGHT) {if(col + 1 == n) {row++;arrow = (arrow + 1) % ARROWS;} else if(matrix[row][col+1] != ' ') {row++;arrow = (arrow + 1) % ARROWS;} elsecol++;} else if(arrow == DOWN) {if(row + 1 == m) {col--;arrow = (arrow + 1) % ARROWS;} else if(matrix[row+1][col] != ' ') {col--;arrow = (arrow + 1) % ARROWS;} elserow++;} else if(arrow == LEFT) {if(col == 0) {row--;arrow = (arrow + 1) % ARROWS;} else if(matrix[row][col-1] != ' ') {row--;arrow = (arrow + 1) % ARROWS;} elsecol--;} else if(arrow == UP) {if(row == 0) {col++;arrow = (arrow + 1) % ARROWS;} else if(matrix[row-1][col] != ' ') {col++;arrow = (arrow + 1) % ARROWS;} elserow--;}}// 输出结果for(int i=0; i<m; i++) {for(int j=0; j<n; j++)cout << "   " << matrix[i][j];cout << endl;}return 0;
}

POJ3752 字母旋转游戏【水题】相关推荐

  1. NUC1422 字母旋转游戏【水题】

    字母旋转游戏 时间限制: 1000ms 内存限制: 65535KB 通过次数: 2总提交次数: 5 问题描述 给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在 ...

  2. hdu-5867 Water problem(水题)

    题目链接: Water problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  3. 1251: 字母图形 [水题]

    1251: 字母图形 [水题] 时间限制: 1 Sec 内存限制: 128 MB 提交: 140 解决: 61 统计 题目描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG B ...

  4. week11——作业(水题+背包问题)

    目录 买房子: 问题描述 题目简述 输入/输出格式 样例 问题分析 解题思路 参考代码 心得体会 排方阵: 问题描述 题目简述 输入/输出格式 样例 问题分析 解题思路 参考代码 心得体会 凯撒密码: ...

  5. CF Round #426 (Div. 2) The Useless Toy 思维 水题

    题目链接: http://codeforces.com/contest/834/problem/A 题目描述: 输入起始状态和结束状态和数列长度, 判断旋转方向是顺时针逆时针还是不合理 解题思路: 长 ...

  6. hdu3793 判断对称(水题)

    题意:       给你一个串,问你这个串是不是关于某个字母对称的,这个串是一个首位相接的圆. 思路:       水题,直接枚举每一个为对称点试一下就行了,不解释了. #include<std ...

  7. hdu 2025:查找最大元素(水题,顺序查找)

    查找最大元素 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  8. 1001 字符串“水”题(二进制,map,哈希)

    1001: 字符串"水"题 时间限制: 1 Sec  内存限制: 128 MB 提交: 210  解决: 39 [提交][状态][讨论版] 题目描述 给出一个长度为 n 的字符串( ...

  9. CodeForces - 1141D Colored Boots(暴力+水题)

    题目链接:点击查看 题目大意:给出两个字符串s和t,两个字符串中相同的字母可以匹配,问号可以和任意字符匹配,现在问两个字符串最多能匹配多少个字符,并给出匹配的下标 题目分析:挺好玩的一道水题,大体思路 ...

最新文章

  1. mac镜像cdr格式_设计常用文件格式!萌新必备
  2. python语言入门详解-Python unittest详解一(基础入门)
  3. python二元函数如何编写,如何用Python和sklearn编写多元对数回归?
  4. 两轮平衡机器人送披萨,旋转跳跃!
  5. cors spring_Spring,REST,Ajax和CORS
  6. “打”遍全球!支付宝重磅新功能上线...
  7. node.js与npm下载及配置流程
  8. 一个迅速崛起的国产开源OCR项目!
  9. iris鸢尾花数据集java_鸢尾花数据集(Iris)
  10. matlab 求导数
  11. ACDSee Photo Studio 7 for Mac(最好用的图像处理软件)
  12. 未来计算机技术的发展趋势有哪些,浅谈计算机技术的发展趋势
  13. twaver html5软件价格,TWaver数据中心可视化软件
  14. 使用tayga测试无状态nat64功能
  15. (待填坑)【数据结构】笛卡尔树
  16. Visual studio系统找不到指定文件的解决办法
  17. 在Unity中使用Excel表开发单选题和多选题
  18. clamped b_spline
  19. nodejs addon
  20. Word加粗的字体如何恢复正常粗细

热门文章

  1. 使用python制作ArcGIS插件(4)界面交互
  2. jQuery常用的查找Dom元素方法
  3. [开源]quakeIII(雷神之锤3)源码
  4. if shell 条件语句简写_shell中的if语句
  5. 计算机键盘prtscr,键盘上的SCR是什么意思(电脑截图的快捷方式都有哪些)
  6. Impala之DDL、DML
  7. Python之面向对象 私有属性和私有方法
  8. Linux报错问题:bash: vi: command not found
  9. 一个简单的线程池设计方案
  10. ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?