poj 3752 字母旋转游戏

字母旋转游戏

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 7890   Accepted: 2983

Description

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

   A   B   C   D   E   F   G   H
   V   W   X   Y   Z   A   B   I
   U   J   K   L   M   N   C   J
   T   I   H   G   F   E   D   K
   S   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   I
   V   W   X   Y   Z   A   B   C   J
   U   J   I   H   G   F   E   D   K
   T   S   R   Q   P   O   N   M   L

Source

分析:

模拟

 1 #include<iostream>
 2 #include<queue>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 char map[1005][1005],c[26]={‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,‘O‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘};
 8 int main(){
 9     int m,n;
10     cin>>m>>n;
11     int i,j,x=1,y=0;
12     memset(map,‘0‘,sizeof(map));
13     int sum=m*n;
14     //cout<<m<<‘ ‘<<n<<endl;
15     i=0;
16     for(;i<sum;){
17         while(y+1<=n&&map[x][y+1]==‘0‘){
18             y++;
19             //cout<<"i: "<<i<<endl;
20             map[x][y]=c[i%26];
21             i++;
22         }
23     //    cout<<1<<endl;
24         while(x+1<=m&&map[x+1][y]==‘0‘){
25             x++;
26             //i++;
27             //cout<<"i: "<<i<<endl;
28             map[x][y]=c[i%26];
29             i++;
30         }
31     //    cout<<2<<endl;
32         while(y-1>0&&map[x][y-1]==‘0‘){
33             y--;
34             //i++;
35     //        cout<<"i: "<<i<<endl;
36             map[x][y]=c[i%26];
37             i++;
38         }
39     //    cout<<3<<endl;
40         while(x-1>0&&map[x-1][y]==‘0‘){
41             x--;
42             //i++;
43     //        cout<<"i: "<<i<<endl;
44             map[x][y]=c[i%26];
45             i++;
46         }
47     //    cout<<4<<endl;
48     }
49     //cout<<m<<‘ ‘<<n<<endl;
50     for(i=1;i<=m;i++){
51         for(j=1;j<=n;j++){
52             cout<<"   "<<map[i][j];
53                   //A   B   C   D   E   F   G   H
54         }
55         cout<<endl;
56     }
57     return 0;
58 }
时间: 2024-07-30 13:43:51

poj 3752 字母旋转游戏的相关文章

POJ 3250:字母重排

AC CODE: import java.util.Scanner; public class Main { private static char[] ASCII = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' }; private static String getString() { Scanner input = new

[Wythoff博弈] poj 1067 取石子游戏

题目链接: http://poj.org/problem?id=1067 取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33556   Accepted: 11180 Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者.现在给出初始的两堆石

猜字母小游戏

/** 猜字母小游戏  需求如下: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果(5个字符不允许重复),由玩家来猜测此字符串. 玩家可以猜测多次(不区分大小写),每猜测一次,则由系统提示结果. (猜测过程中输入非英文字符或超过5个字符会要求重新输入正确字符). 如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出: 如果没有猜对,则提示猜测的结果,例如 猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续. 如果玩家在控制台录入 exit(不区分大小写),则游戏中止,程

POJ 3752

http://poj.org/problem?id=3752 这是一道我觉得还蛮有意思的题目,不难,是个水题,但我也TLE了几次,感到很奇怪,这么简单的循环还TLE,最后一想,肯定是有几个例子我是没有考虑到的 我觉得就是考你对循环的使用吧 代码写的有点长,有点琐碎 1 #include <stdio.h> 2 #include <iostream> 3 #include <string.h> 4 5 using namespace std; 6 7 char str[1

打字母小游戏

第一次用eaxyx相关知识,也是第一次写游戏,记录下...研究了好久才弄出来的+_+ 1 #include<graphics.h> 2 #include<conio.h> 3 #include<stdio.h> 4 #include<time.h> 5 #pragma comment(lib,"Winmm.lib") 6 7 void First(); 8 void Second(); 9 void GameStart(); 10 voi

POJ 2079 Triangle [旋转卡壳]

Triangle Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 9525   Accepted: 2845 Description Given n distinct points on a plane, your task is to find the triangle that have the maximum area, whose vertices are from the given points. Input

Java算法试题--猜字母/杀人游戏

题目如下: 把abcd-s共19个字母组成的序列重复拼接106次,得到长度为2014的串. 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母. 得到的新串再进行删除奇数位置字母的动作.如此下去,最后只剩下一个字母,请写出该字母. 答案是一个小写字母,请通过浏览器提交答案.不要填写任何多余的内容. public class 猜字母 { public static void main(String[] args) { String str = "abcdefghijkl

字母小游戏

描述 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z,1对应a,2对应b....25对应y). 输入 第一行是一个整数n(1<n<1000)表示接下来有n行的字符串m(1<m<200)需要输入 输出 输出对应的小写字母 每个小写字母单独占一行 样例输入 2 asdasl+%$^&ksdhkjhjksd adklf&(%^(alk

[原博客] POJ 1067 取石子游戏

题目链接有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者.现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者.(中文题面,感动ing) 但是这道题实在是呵呵.开始没啥思路,根据必胜状态必败状态的定义,n^3打了个表,看起来是这样的. 图为100x100,已经缩小,左上角是状态(0,0),右下角状态为(10