Timus Online Judge:ural:1006. Square Frames
原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1006
看到题第一反应:这玩意怎么读入……
本地的话因为是全角字符,会占两个位置,所以需要使用两个getchar()(反正我的IDE会这样),而提交上去getchar是可以读入218,191这样的ASCII码值的。
主程序段就不用说了,随便暴力跑跑就好。
然后是几个坑点:
“Your sequence does not have to be the same with the original sequence used to build the picture on the screen.”
这句并不是说你的正方形输出顺序可以打乱,顺序还是要按画的顺序来。
“(0 ≤ Xi ≤ 49, 0 ≤ Yi ≤ 19) (2 ≤ Ai)”
输出顺序是先列后行,而且从0开始。Ai指的是正方形边长。
样例居然不让复制,那就不用好了,自己打它个20*50的点阵然后慢慢改。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MN 151
using namespace std;
int read_p,read_ca,read_f;
inline int read(){
read_p=;read_ca=getchar();read_f=;
while(read_ca<''||read_ca>'') read_f=read_ca=='-'?-:read_f,read_ca=getchar();
while(read_ca>=''&&read_ca<='') read_p=read_p*+read_ca-,read_ca=getchar();
return read_p*read_f;
}
int map[][],c,X[],Y[],Z[],num=;
bool work(int x,int y,int z){
if (map[x+z][y]!=&&map[x+z][y]!=) return ;
if (map[x][y+z]!=&&map[x][y+z]!=) return ;
if (map[x+z][y+z]!=&&map[x+z][y+z]!=) return ;
for (int i=x+;i<x+z;i++)
if (map[i][y+z]!=&&map[i][y+z]!=) return ; for (int i=y+;i<y+z;i++)
if (map[x+z][i]!=&&map[x+z][i]!=) return ; int mmh=;
for (int i=y;i<=y+z;i++)
mmh|=(map[x][i]!=)|(map[x+z][i]!=); for (int i=x;i<=x+z;i++)
mmh|=(map[i][y]!=)|(map[i][y+z]!=); if (!mmh) return ;
num++;
X[num]=x;Y[num]=y;Z[num]=z+; for (int i=y;i<=y+z;i++)
map[x][i]=,map[x+z][i]=; for (int i=x;i<=x+z;i++)
map[i][y]=,map[i][y+z]=;
}
int main(){
//freopen("a.in","r",stdin);
/*printf("%d\n",getchar());
printf("%d\n",getchar());*/
register int i,j,k;
for (i=;i<=;i++)
for (j=;j<=;j++){
while (c=getchar(),c=='\n'||c==' ');
if (c==) map[i][j]=;else
if (c==) map[i][j]=;else
if (c==) map[i][j]=;else
if (c==) map[i][j]=;else
if (c==) map[i][j]=;else
if (c==) map[i][j]=;else map[i][j]=;
//if (c==169) map[i][j]=getchar();else map[i][j]=0;
}
for (;;){
for (i=;i<=;i++){
for (j=;j<=;j++) if (map[i][j]>) break;
if (j<=) break;
}
if (i>) break;
for (i=;i<=;i++)
for (j=;j<=;j++)
if (map[i][j]==||map[i][j]==)
for (k=;i+k<=&&j+k<=;k++)
if (work(i,j,k)||(map[i+k][j]!=&&map[i+k][j]!=)||(map[i][j+k]!=&&map[i][j+k]!=)) break;
} printf("%d\n",num);
for (i=num;i;i--){
printf("%d %d %d",Y[i]-,X[i]-,Z[i]);
if (i!=) putchar('\n');
}
}
Timus Online Judge:ural:1006. Square Frames的更多相关文章
- 01背包 URAL 1073 Square Country
题目传送门 /* 题意:问n最少能是几个数的平方和 01背包:j*j的土地买不买的问题 详细解释:http://www.cnblogs.com/vongang/archive/2011/10/07/2 ...
- Ural 1073 Square Country (DP)
题目地址:Ural 1073 DP水题.也能够说是背包. #include <iostream> #include <cstdio> #include <string&g ...
- ural 1073. Square Country
1073. Square Country Time limit: 1.0 secondMemory limit: 64 MB There live square people in a square ...
- LeetCode题解:(221) Maximal Square
题目说明 Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's a ...
- Timus Online Judge 1001. Reverse Root
Input The input stream contains a set of integer numbers Ai (0 ≤ Ai ≤ 1018). The numbers are separat ...
- ural 1698. Square Country 5(记忆化搜索)
1698. Square Country 5 Time limit: 2.0 secondMemory limit: 64 MB The first arithmetical operation ta ...
- ural 1073.Square Country(动态规划)
1073. Square Country Time limit: 1.0 secondMemory limit: 64 MB There live square people in a square ...
- 沉迷AC自动机无法自拔之:穿越广场 square
如标题所言,我已经沉迷于AC自动机无法自拔了... 这又是一道AC自动的题,红红火火恍恍惚惚 穿越广场 [问题描述] L 国的仪仗队要穿越首都广场了.首都广场可以看做是一块 N*M 的矩形网格,仪仗队 ...
- CodeChef - SQRGOOD:Simplify the Square Root (求第N个含平方因子数)
Tiny Wong the chef used to be a mathematics teacher in a senior high school. At that time, he always ...
随机推荐
- Java中参数传递问题
Java中参数传递可以分为值传递和引用传递,话不多说直接撸代码 1.传原始类型(int,String等)数据是值传递 package test_1; public class Test { publi ...
- iOS自定义文字高度添加行间距
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } span.s2 { c ...
- xml文件解析(使用解析器)
一.Xml解析,解析xml并封装到list中的javabean中 OM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在 ...
- geoserver发布地图服务WMS
wms服务发布: 1.打开geoserver管理首页(网址为http://localhost:8080/geoserver/web/),并使用安装时设置的帐户名和密码登录(这里是admin/geose ...
- php示例的错误记录
最近几天在测试php的mvc,从网上找到几个示例. 先学习这一篇,http://www.cnblogs.com/q1ng/p/4529496.html 标题是 PHP的MVC框架 深入解析,其实是最 ...
- Git操作流程,基本命令演示
任务列表: 有一个中央库Center,和三个工作站A,B,C. 初始化时,代码存放在中央库中,A,B,C三个工作站开始工作之前都要首先从中央库克隆一份代码到本地. 第一个任务:A和B合作修复一个缺陷, ...
- C# 全选中数字文本框内容
/// <summary> /// 全选中数字文本框内容 /// </summary> /// <param name=&quo ...
- 使用C#开发数据库应用系统 习题
错题积累 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
- Python的变量和常量
解释器执行Python的过程: (python3,c:/test.py) 1:启动python解释器(内存中). 2:将c:/test.py内容从硬盘读到内存中(这一步和文本编辑器是一样的). 3 ...
- 解决adb push时出现的"Read-only file system"问题
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...