http://poj.org/problem?id=3752

这是一道我觉得还蛮有意思的题目,不难,是个水题,但我也TLE了几次,感到很奇怪,这么简单的循环还TLE,最后一想,肯定是有几个例子我是没有考虑到的

我觉得就是考你对循环的使用吧

代码写的有点长,有点琐碎

 #include <stdio.h>
#include <iostream>
#include <string.h> using namespace std; char str[][]; bool mark[][]; int main()
{
int m,n,i,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(mark,false,sizeof(mark));
for(i=;i<=m;i++)
for(j=;j<=n;j++) //对需要存字母的地方进行初始化,因为我的判断退出的标志是它的四周都已经有了字母,而有字母则是false,想不通的就考虑2,2这一种情况
mark[i][j]=true;
for(i=;;)
{
str[][]='A';
mark[][]=false;
if(i==)
{
for(j=;j<=n&&mark[i][j];j++)
{
if(str[i][j-]=='Z') str[i][j]='A';
else str[i][j]=str[i][j-]+;
mark[i][j]=false;
}
i++;
j--;
if(i>m) break;
}
else
{
for(;i<=m&&mark[i][j];i++)
{
if(str[i-][j]=='Z') str[i][j]='A';
else str[i][j]=str[i-][j]+;
mark[i][j]=false;
}
i--;
if(!mark[i+][j]&&!mark[i-][j]&&!mark[i][j+]&&!mark[i][j-]) break;
for(j--;j>=&&mark[i][j];j--)
{
if(str[i][j+]=='Z') str[i][j]='A';
else str[i][j]=str[i][j+]+;
mark[i][j]=false;
}
j++;
if(!mark[i+][j]&&!mark[i-][j]&&!mark[i][j+]&&!mark[i][j-]) break;
for(i--;i>=&&mark[i][j];i--)
{
if(str[i+][j]=='Z') str[i][j]='A';
else str[i][j]=str[i+][j]+;
mark[i][j]=false;
}
i++;
if(!mark[i+][j]&&!mark[i-][j]&&!mark[i][j+]&&!mark[i][j-]) break;
for(j++;j<=n&&mark[i][j];j++)
{
if(str[i][j-]=='Z') str[i][j]='A';
else str[i][j]=str[i][j-]+;
mark[i][j]=false;
}
j--;
i++;
if(!mark[i+][j]&&!mark[i-][j]&&!mark[i][j+]&&!mark[i][j-]) break;
}
}
for(i=;i<=m;i++)
{
for(j=;j<=n;j++)
printf(" %c",str[i][j]);
printf("\n");
}
}
return ;
}

POJ 3752的更多相关文章

  1. POJ 3752 字母旋转游戏

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

  2. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  3. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  4. POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  5. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

  6. POJ 3254. Corn Fields 状态压缩DP (入门级)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

  7. POJ 2739. Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20050 ...

  8. POJ 2255. Tree Recovery

    Tree Recovery Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11939   Accepted: 7493 De ...

  9. POJ 2752 Seek the Name, Seek the Fame [kmp]

    Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17898   Ac ...

随机推荐

  1. TF-IDF 加权及其应用

    TF-IDF 加权及其应用 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索的常用加权技术.TF-IDF是一种统计方法,用以评估某个 ...

  2. Working with Transactions (EF6 Onwards)

    Data Developer Center > Learn > Entity Framework > Get Started > Working with Transactio ...

  3. app接口的简单案例 和一些总结

    例一: 通过接口获取一篇文章.接口需要传入文章的id,通过sql语句向数据库查询文章的内容,然后以json的格式echo出即可,即:安卓或IOS工程师获取通过接口获取到了json格式的数据,在做进一步 ...

  4. Objective-C 链式语法的实现

    对于 Objective-C 的语法,喜欢的人会觉得它是如此的优雅,代码可读性强,接近自然语言,开发者在调用大多数方法时不需要去查看注释或文档,通常只凭借方法名就可以大致知道这个方法的作用,可以理解为 ...

  5. 使程序在Linux下后台运行

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

  6. 只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs

    只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs [ide is evil] (http://i.cnblogs.com/EditP ...

  7. Linux命令笔记(一)

    vi 有三种模式,输入模式,编辑模式,“:”命令模式vi 进入以后默认是编辑模式vi 编辑模式默认的快捷键 上下左右分别是 J K H Lvi 在编辑模式使用 i 可以进入输入模式vi 输入模式只能输 ...

  8. EF-联合查询-结果集-Group by-统计数目

    EF框架用着痛并且快乐着··· 毕竟用习惯了SQL语句直接硬查的··· SELECT C0.ID,C_C.Name,C_C.C_COUNT FROM article_type C0 INNER JOI ...

  9. 基于iSCSI的SQL Server 2012群集测试(四)--模拟群集故障转移

    6.模拟群集故障转移 6.1 模拟手动故障转移(1+1) 模拟手动故障转移的目的有以下几点: 测试群集是否能正常故障转移 测试修改端口是否能同步到备节点 测试禁用full-text和Browser服务 ...

  10. wordpress如何批量关闭旧日志留言功能

    于一些wordpress技术博客或者其他wordpress博客来说,一些旧日志的内容可能已经过时了,但是一些读者,还是对一些问题“纠缠不清”或者“喋喋不休”,怎么办,把留言关了就好了: UPDATE ...