原题链接: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. 我的第一个python web开发框架(19)——产品发布相关事项

    好不容易小白将系统开发完成,对于发布到服务器端并没有什么经验,于是在下班后又找到老菜. 小白:老大,不好意思又要麻烦你了,项目已经弄完,但要发布上线我还一头雾水,有空帮我讲解一下吗? 老菜:嗯,系统上 ...

  2. 欢迎大家走进我的园子 ( ^___^ )y 本博客文章目录整理

    "记录"是见证成长:"成长"则意味着蜕变:“变",创造无限可能! ------致自己 文章越来越多,不容易查看,特整理了一个目录,方便快速查找 坚持的是分享,搬运的是知识,图的是大家的进步,欢迎更多的 ...

  3. C# Log4net记录日志

    前言 1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到 ...

  4. 【原创】java NIO FileChannel 学习笔记 FileChannel实现分析 即FileChannelImpl分析

    上文已经说了FileChannel是一个抽象类,FileChannelImpl是其实现,接下来介绍FileChannelImpl,参考代码来自OpenJDK7 首先 public class File ...

  5. JavaScript获取数组最小值和最大值的方法

    本文实例讲述了JavaScript获取数组最小值和最大值的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 var arr = new Array(); arr[0] = 100; ...

  6. python sklearn PCA源码阅读:参数n_components的设置(设为‘mle’出错的原因)

    在介绍n_components参数之前,首先贴一篇PCA参数详解的文章:http://www.cnblogs.com/akrusher/articles/6442549.html. 按照文章中对于n_ ...

  7. Python+selenium+eclipse+pydev自动化测试环境搭建

    一.        安装python 1.下载安装python 可访问python的官方网站:http://www.Python.prg找到下载页面下载需要的版本,可下载python2.x或者pyth ...

  8. [js高手之路] vue系列教程 - 事件专题(4)

    本文主要讲解事件冒泡,事件绑定的简写,事件默认行为,按键码等一系列与事件相关的知识. 一.事件绑定的简写,@事件类型.  之前我的[js高手之路] vue系列教程 - vue的事件绑定与方法(2) 用 ...

  9. Presto集群部署

    前言: 随着大数据的普及,大部分企业的大数据查询与统计渐渐出现瓶颈.虽说存储方面有分布式的HDFS,HBSE,MongoDB等可以应对,但是面对千万级别(1x10^7)界别的数据量查询时,以上组件也不 ...

  10. PHP读取excel中地址实现多文件下载

    PHP文件下载有单文件和多文件之分,如果是单文件写个方法可以实现,但是如果想循环下载多个文件我试验是没有成功.先说单文件的下载,方法如下: function downfile($fileurl) { ...