原题链接: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. Java IO学习要点导图

    Java IO的一些基础知识: 导图源文件保存地址:https://github.com/wanghaoxi3000/xmind

  2. iOS 计时器三种定时器的用法NSTimer、CADisplayLink、GCD

    原文:http://www.cocoachina.com/ios/20160919/17595.html DEMO链接

  3. 【Uva10559】Blocks(区间DP)

    Description 题意:有一排数量为N的方块,每次可以把连续的相同颜色的区间消除,得到分数为区间长度的平方,然后左右两边连在一起,问最大分数为多少. \(1\leq N\leq200\) Sol ...

  4. 树链剖分X2

    1.ZJOI树的统计 板子题 因为初始化没打改了几个小时 改到双腿软着出的机房(身体素质感人 #include<iostream> #include<cstdio> #incl ...

  5. bzoj 1801: [Ahoi2009]chess 中国象棋

    Description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮. 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. Input 一行包含两个整数N, ...

  6. form表单与后台请求的关系

    开发中遇到一个问题,说这个问题前先看一下代码 后台方面, get请求: post请求: 前端方面: 问题是:当我点击提交表单后,页面会跳转成这样: 经过多番测试,原因竟是form表单的提交问题,如果用 ...

  7. mybatis源码分析(一)

    mybatis源码分析(sqlSessionFactory生成过程) 1. mybatis框架在现在各个IT公司的使用不用多说,这几天看了mybatis的一些源码,赶紧做个笔记. 2. 看源码从一个d ...

  8. 封装数据库配置文件App配置文件

    <connectionStrings>   <add name="strCon" connectionString="Data Source=.;Ini ...

  9. 02-01官网静默模式安装WebLogic

    参考连接:https://docs.oracle.com/middleware/11119/wls/WLSIG/silent.htm#CIHCAHGC 以静默模式运行安装程序 本章介绍如何以静默方式运 ...

  10. Head First设计模式之模板方法模式

    一.定义 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变算法结构的情况下,重定义该算法中的某些特定步骤. 比较通俗的说法,子类决定如何实现算法中的某些步骤,比如两个一连串 ...