原题链接: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的更多相关文章

  1. 01背包 URAL 1073 Square Country

    题目传送门 /* 题意:问n最少能是几个数的平方和 01背包:j*j的土地买不买的问题 详细解释:http://www.cnblogs.com/vongang/archive/2011/10/07/2 ...

  2. Ural 1073 Square Country (DP)

    题目地址:Ural 1073 DP水题.也能够说是背包. #include <iostream> #include <cstdio> #include <string&g ...

  3. ural 1073. Square Country

    1073. Square Country Time limit: 1.0 secondMemory limit: 64 MB There live square people in a square ...

  4. 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 ...

  5. Timus Online Judge 1001. Reverse Root

    Input The input stream contains a set of integer numbers Ai (0 ≤ Ai ≤ 1018). The numbers are separat ...

  6. ural 1698. Square Country 5(记忆化搜索)

    1698. Square Country 5 Time limit: 2.0 secondMemory limit: 64 MB The first arithmetical operation ta ...

  7. ural 1073.Square Country(动态规划)

    1073. Square Country Time limit: 1.0 secondMemory limit: 64 MB There live square people in a square ...

  8. 沉迷AC自动机无法自拔之:穿越广场 square

    如标题所言,我已经沉迷于AC自动机无法自拔了... 这又是一道AC自动的题,红红火火恍恍惚惚 穿越广场 [问题描述] L 国的仪仗队要穿越首都广场了.首都广场可以看做是一块 N*M 的矩形网格,仪仗队 ...

  9. 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 ...

随机推荐

  1. iOS UIAlertController在Tableview中显示缓慢,迟钝,延迟

    在UITableViewCell中弹窗Alert延迟.在cellForRow中:cell.selectionStyle = UITableViewCellSelectionStyleNone; 或者在 ...

  2. js验证input输入框(字母,数字,符号,中文)

    [javascript]代码库 <h1>js验证输入框内容</h1> <br /> <br /> 只能输入英文 <input type=" ...

  3. Mybatis-----优化配置文件,基于注解CR

    这篇主要写配置文件的优化,例如  jdbc.properties 配置文件  ,引入数据库的文件,例如driver,url,username,password 等,然后在 SqlMapConfig.x ...

  4. whereis 命令详解

    whereis 作用:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息.  参数:-b 定位可 ...

  5. 推荐系统 LFM 算法的简单理解,感觉比大部分网上抄来抄去的文章好理解

    本文主要是基于<推荐系统实践>这本书的读书笔记,还没有实践这些算法. LFM算法是属于隐含语义模型的算法,不同于基于邻域的推荐算法. 隐含语义模型有:LFM,LDA,Topic Model ...

  6. 微信小程序之使用本地接口开发

    本文主要讲解如何使用本地接口进行开发,很多人都会遇到这个问题,特别是小程序上线后. 一.解决思路 在小程序开发工具设置网络代理,然后再通过Charles设置代理,将https域名转为本地接口进行访问. ...

  7. Struts简介、原理及简单实现

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  8. Fiddler中使用AutoResponder创建规则替换线上文件

    Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上. 1.AutoResponder规则实例 (1) 打开博客园首页,把博客园的 ...

  9. python 列表赋值和列表 sort 方法注意的问题

    列表赋值 >>> a = b = [] >>> a.append() >>> a [] >>> b [] >>> ...

  10. Heroku 如何上重置 PostgreSQL 数据库

      如果你要在 Heroku 上重置 PostgreSQL 数据库,可以使用以下命令 : $ heroku pg:reset DATABASE $ heroku run php artisan mig ...