POJ3752 字母旋转游戏【水题】
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 8574 | Accepted: 3236 |
Description
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
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 字母旋转游戏【水题】相关推荐
- NUC1422 字母旋转游戏【水题】
字母旋转游戏 时间限制: 1000ms 内存限制: 65535KB 通过次数: 2总提交次数: 5 问题描述 给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在 ...
- hdu-5867 Water problem(水题)
题目链接: Water problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- 1251: 字母图形 [水题]
1251: 字母图形 [水题] 时间限制: 1 Sec 内存限制: 128 MB 提交: 140 解决: 61 统计 题目描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG B ...
- week11——作业(水题+背包问题)
目录 买房子: 问题描述 题目简述 输入/输出格式 样例 问题分析 解题思路 参考代码 心得体会 排方阵: 问题描述 题目简述 输入/输出格式 样例 问题分析 解题思路 参考代码 心得体会 凯撒密码: ...
- CF Round #426 (Div. 2) The Useless Toy 思维 水题
题目链接: http://codeforces.com/contest/834/problem/A 题目描述: 输入起始状态和结束状态和数列长度, 判断旋转方向是顺时针逆时针还是不合理 解题思路: 长 ...
- hdu3793 判断对称(水题)
题意: 给你一个串,问你这个串是不是关于某个字母对称的,这个串是一个首位相接的圆. 思路: 水题,直接枚举每一个为对称点试一下就行了,不解释了. #include<std ...
- hdu 2025:查找最大元素(水题,顺序查找)
查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 1001 字符串“水”题(二进制,map,哈希)
1001: 字符串"水"题 时间限制: 1 Sec 内存限制: 128 MB 提交: 210 解决: 39 [提交][状态][讨论版] 题目描述 给出一个长度为 n 的字符串( ...
- CodeForces - 1141D Colored Boots(暴力+水题)
题目链接:点击查看 题目大意:给出两个字符串s和t,两个字符串中相同的字母可以匹配,问号可以和任意字符匹配,现在问两个字符串最多能匹配多少个字符,并给出匹配的下标 题目分析:挺好玩的一道水题,大体思路 ...
最新文章
- mac镜像cdr格式_设计常用文件格式!萌新必备
- python语言入门详解-Python unittest详解一(基础入门)
- python二元函数如何编写,如何用Python和sklearn编写多元对数回归?
- 两轮平衡机器人送披萨,旋转跳跃!
- cors spring_Spring,REST,Ajax和CORS
- “打”遍全球!支付宝重磅新功能上线...
- node.js与npm下载及配置流程
- 一个迅速崛起的国产开源OCR项目!
- iris鸢尾花数据集java_鸢尾花数据集(Iris)
- matlab 求导数
- ACDSee Photo Studio 7 for Mac(最好用的图像处理软件)
- 未来计算机技术的发展趋势有哪些,浅谈计算机技术的发展趋势
- twaver html5软件价格,TWaver数据中心可视化软件
- 使用tayga测试无状态nat64功能
- (待填坑)【数据结构】笛卡尔树
- Visual studio系统找不到指定文件的解决办法
- 在Unity中使用Excel表开发单选题和多选题
- clamped b_spline
- nodejs addon
- Word加粗的字体如何恢复正常粗细
热门文章
- 使用python制作ArcGIS插件(4)界面交互
- jQuery常用的查找Dom元素方法
- [开源]quakeIII(雷神之锤3)源码
- if shell 条件语句简写_shell中的if语句
- 计算机键盘prtscr,键盘上的SCR是什么意思(电脑截图的快捷方式都有哪些)
- Impala之DDL、DML
- Python之面向对象 私有属性和私有方法
- Linux报错问题:bash: vi: command not found
- 一个简单的线程池设计方案
- ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?