原题链接: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=0;read_ca=getchar();read_f=1;while(read_ca<'0'||read_ca>'9') read_f=read_ca=='-'?-1:read_f,read_ca=getchar();while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();return read_p*read_f;
}
int map[100][100],c,X[100],Y[100],Z[100],num=0;
bool work(int x,int y,int z){if (map[x+z][y]!=1&&map[x+z][y]!=184) return 0;if (map[x][y+z]!=1&&map[x][y+z]!=180) return 0;if (map[x+z][y+z]!=1&&map[x+z][y+z]!=188) return 0;for (int i=x+1;i<x+z;i++)if (map[i][y+z]!=1&&map[i][y+z]!=166) return 0;for (int i=y+1;i<y+z;i++)if (map[x+z][i]!=1&&map[x+z][i]!=164) return 0;int mmh=0;for (int i=y;i<=y+z;i++)mmh|=(map[x][i]!=1)|(map[x+z][i]!=1);for (int i=x;i<=x+z;i++)mmh|=(map[i][y]!=1)|(map[i][y+z]!=1);if (!mmh) return 0;num++;X[num]=x;Y[num]=y;Z[num]=z+1;for (int i=y;i<=y+z;i++)map[x][i]=1,map[x+z][i]=1;for (int i=x;i<=x+z;i++)map[i][y]=1,map[i][y+z]=1;
}
int main(){//freopen("a.in","r",stdin);/*printf("%d\n",getchar());printf("%d\n",getchar());*/register int i,j,k;for (i=1;i<=20;i++)for (j=1;j<=50;j++){while (c=getchar(),c=='\n'||c==' ');if (c==218) map[i][j]=176;elseif (c==191) map[i][j]=180;elseif (c==217) map[i][j]=188;elseif (c==192) map[i][j]=184;elseif (c==179) map[i][j]=166;elseif (c==196) map[i][j]=164;else map[i][j]=0;//if (c==169) map[i][j]=getchar();else map[i][j]=0;
    }for (;;){for (i=1;i<=20;i++){for (j=1;j<=50;j++) if (map[i][j]>1) break;if (j<=50) break;}if (i>20) break;for (i=1;i<=20;i++)for (j=1;j<=50;j++)if (map[i][j]==1||map[i][j]==176)for (k=1;i+k<=20&&j+k<=50;k++)if (work(i,j,k)||(map[i+k][j]!=166&&map[i+k][j]!=1)||(map[i][j+k]!=164&&map[i][j+k]!=1)) break;}printf("%d\n",num);for (i=num;i;i--){printf("%d %d %d",Y[i]-1,X[i]-1,Z[i]);if (i!=1) putchar('\n');}
}

View Code

转载于:https://www.cnblogs.com/Enceladus/p/6232668.html

Timus Online Judge:ural:1006. Square Frames相关推荐

  1. timus 1513. Lemon Tale URAL 解题报告

    timus   1513. Lemon Tale    URAL 解题报告 题目大意:就是一行字符,LB组成,一个检测员呢和L有仇啊,只要是多余K个连续的L出现,那么这条语句就不合法,为此,三名程序猿 ...

  2. PAT甲级1075 PAT Judge:[C++题解]排序、结构体

    文章目录 题目分析 题目链接 题目分析 分析:主要问题在于判断是否出现过,如果出现过就不需要再初始化一个结构体,如果未出现过再初始化一个结构体. 当然还需要开一个hash表,用来映射学生id和结构体信 ...

  3. Timus Online Judge 2045 Richness of words

    今天下午组队训练,做完整的套题.这是今天下午唯一AC的题目,也是这套题目中最简单的题目,顿时就不开心了. 题目链接:http://acm.timus.ru/problemset.aspx?space= ...

  4. 蒟蒻君的刷题日记Day1:CF1A Theatre Square

    文章目录 题目大意 解题思路 代码实现 题目大意 有一个n×mn \times mn×m的矩阵,你需要用若干个a×aa \times aa×a的正方形填满ta. 正方形不能切割,可以超出这个矩阵,但不 ...

  5. pku,zju题目分类

    哎呦喂,直接ctrl+A了.话说浙江大学的题还见过的呢.. 公告: [意见反馈][官方博客]   ural pku Zju 题目分类 收藏   感谢 mugu 的提供.... Ural Problem ...

  6. Online Judge System

    原文:http://hi.baidu.com/myalgorithm/blog/item/936031105bdb5958f819b880.html Online Judge System 起源與由來 ...

  7. Online Judge汇总

    1.SGU(Saratov State University Online Contester)     有很多难题,还有Virtual Contest,推荐推荐.     地址: http://ac ...

  8. 整理:ACM相关好的网站 OJ Blog (不断更新)

    ACM-ICPC世界网站 http://acm.timus.ru http://acm.sgu.ru http://acm.hnu.cn http://acm.hdu.edu.cn http://ac ...

  9. Timus 1114. Boxes

    Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目. 1114. Boxes Time Limit: 0.6 second Memory Limit: 16 MB ...

最新文章

  1. Entity Framework Code First在Oracle下的伪实现
  2. navicatformysql
  3. S5PV210开发 -- 启动流程
  4. java中servletcontext_java中获取ServletContext常见方法
  5. nssl1258-naive的瓶子【贪心】
  6. 卷积神经网络的权值参数个数的量化分析
  7. python调用pipe_Python中使用PIPE操作Linux管道
  8. ThinkPHP5 模型 - 事务支持
  9. winform自定义消息提示框定时自动关闭
  10. hdu 3065 AC自动机模版题
  11. android 著名播放器,十二大最著名的Android播放器开源项目
  12. 计算机械加工工时都需要,机械加工工时(工时定额)计算软件
  13. 计算机二级考试科目vfp,计算机二级考试科目及内容
  14. 卫星导航信号结构变化的过去,现在和未来
  15. 计算机时钟周期的概念,指令周期、时钟周期、总线周期概念辨析
  16. 硬盘安装Win10系统教程_Win10官网
  17. 用Win10自带SSH实现免密登录Linux
  18. 华为路由器怎么看是不是公网_华为路由器怎么判断有没有被蹭网
  19. markdown 输入积分符号
  20. 应用程序无法正常启动 0xc000000d

热门文章

  1. 【机器视觉】 dev_set_window_extents算子
  2. 改变窗口背景_办公软件操作技巧063:如何设置ppt母版背景
  3. postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解
  4. mybitys 动态sql 注释_mybatis注解动态sql详解
  5. Xcode7查看iphone真机的应用程序文件
  6. Vi编辑器的使用方法
  7. 关于使用spring管理hibernate,能够管理事务,却不执行除查询外的增删改操作,不能让数据库数据改变的原因
  8. STL 容器迭代器失效总结
  9. mysql正则表达式简单
  10. C++ Primer这本书怎么样?