POJ 3752
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的更多相关文章
- POJ 3752 字母旋转游戏
		
问题描述: 给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充.例如,当M=5,N ...
 - POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
		
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
 - POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
		
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
 - POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
		
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
 - POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
		
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
 - POJ 3254. Corn Fields 状态压缩DP (入门级)
		
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
 - POJ 2739. Sum of Consecutive Prime Numbers
		
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
 - POJ 2255. Tree Recovery
		
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
 - 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 ...
 
随机推荐
- PHPstorm设置连接FTP,进行文件上传、下载、比较
			
内容转载自:http://www.cnblogs.com/jikey/p/3486621.html 如何在 ...
 - 新浪微博客户端(35)-使用NSMutableAttributedString实现多行文本的效果
			
DJComposeViewController.m import "DJComposeViewController.h" #import "DJAccountTool.h ...
 - mapreduce 模板
			
/*** * MapReduce Module * @author nele * */ public class ModuleMapReduce extends Configured implemen ...
 - 在linux下运行apt-get update 时,报错/var/lib/apt/lists/lock
			
在运行apt-get update 时,报下面的错误: E: 无法获得锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavai ...
 - bestcoder Round #7 前三题题解
			
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
 - PostgreSQL中的时间操作总结
			
取当前日期的函数: (1) 取当前时间:select now() (2) 取当前时间的日期: select current_date (3) 取当前具体时间(不含日 ...
 - 使用批处理(bat)脚本对目录树下同种性质的目录或文件进行处理
			
问题起源:每次从svn管理的目录下面复制目录之后里面总是有很多.svn的目录,虽说不影响使用但看着很碍眼.同时自己也懒得使用svn的export功能. 因此一个简单的批处理脚本可以帮助我们搞定一切,当 ...
 - 如何打开xip格式的xcode安装包
			
解决方法如下: 1.保证存储空间 20G 2.去除解压验证 xattr -d com.apple.quarantine Xcode_8_beta.xip 3.双击解压 详见: 从官网下载的 xcode ...
 - Swift2.1 语法指南——嵌套类型
			
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
 - linux 输出重定向一份到本地文件,屏幕继续输出
			
ls -al 2>&1 | tee xLog