题目背景

众所周知,小Z是高富帅的典范和代表,所以他很很多很多的妹纸。小Z要写情书给他的妹纸了,作为一个谨慎的人,他当然不会直白的写在纸上(否则被那群损友发现岂不糟了?)。

题目描述

虽然小Z谨小慎微,但是还是被狡猾的小D给发现了其中的玄机。作为一个大方的人,小D自然要把这个秘密拿出来给大家共享啦~小Z开始有两张N*N大小的纸一张是透明的、一张是有字的。然后小Z把透明的纸上有些格子涂黑了。接着把这两张纸一起给他的妹纸,妹纸事先和小Z约定好了,按照如下方法阅读:首先先把透明的纸盖在另一张纸上,然后把露出来的字母从上到下从左到右写下来,然后转个90度,再读一遍……这样子一共读四遍……详见样例。

小D不知从哪把情书弄来了,请大家一起来欣赏,顺便请大家把内容打出来看看。

输入输出格式

输入格式:

第1行,一个整数N;

第2到第N+1行,每行N个字符,代表skj的透明纸,“O”没有涂黑的地方,“#”代表被涂黑的地方;

第N+2到第2N+1行,每行N个字符,仅包含大写字母,如描述中所示,是另一张纸。

输出格式:

一行,情书的内容。

输入输出样例

输入样例#1:

4
##O#
#O#O
####
###O
ARAO
PCEM
LEEN
TURC

输出样例#1:

ACMCENTRALEUROPE

说明

【数据规模】

1<=N<=1000

思路:

可以先用一个 struct 来记录透明纸中‘O’的坐标,总数量为cnt个,再用遍历这cnt个坐标,找到旋转过后 坐标的变化关系,在用数组记录,最后排一下序就OK了。

#include<bits/stdc++.h>
using namespace std;
char a[1010][1010],b[1010][1010];
struct node
{int x,y;
} c[4][1000010];// 表示4个方向
bool cmp(node x,node y)// 根据坐标排序
{return x.x==y.x?x.y<y.y:x.x<y.x;
}
int main()
{freopen("a.txt","r",stdin);int i,j,n,cnt=0;scanf("%d",&n);for(i=1; i<=n; i++){scanf("%s",a[i]+1);for(j=1; j<=n; j++){if(a[i][j]=='O') c[0][++cnt].x=i, c[0][cnt].y=j;}}for(i=1; i<=cnt; i++)// 坐标根据关系的变化{c[1][i].x=c[0][i].y;c[1][i].y=n+1-c[0][i].x;c[2][i].x=c[1][i].y;c[2][i].y=n+1-c[1][i].x;c[3][i].x=c[2][i].y;c[3][i].y=n+1-c[2][i].x;}for(i=1; i<=n; i++) scanf("%s",b[i]+1);sort(c[1]+1,c[1]+1+cnt,cmp);sort(c[2]+1,c[2]+1+cnt,cmp);sort(c[3]+1,c[3]+1+cnt,cmp);for(i=0; i<=3; i++){for(j=1; j<=cnt; j++)cout<<b[c[i][j].x][c[i][j].y];}return 0;
}

洛谷 P2191 小Z的情书相关推荐

  1. 洛谷 P2186 小Z的栈函数

    洛谷 P2186 小Z的栈函数 题目 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. I ...

  2. 2017提高组D1T1 洛谷P3951 小凯的疑惑

    洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...

  3. 洛谷 P4430 小猴打架

    洛谷 P4430 小猴打架 题目描述 一开始森林里面有N只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友.每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友.经过N-1次打 ...

  4. Luogu P2129 小Z的情书

    Luogu P2129 小Z的情书 题目 [题目背景] 众所周知,小Z是高富帅的典范和代表,所以他很很多很多的妹纸.小Z要写情书给他的妹纸了,作为一个谨慎的人,他当然不会直白的写在纸上(否则被那群损友 ...

  5. (最小割)洛谷P1361 小M的作物

    洛谷P1361 小M的作物 思路: 这是一个两者取一的模型,将点集一分为二. 最小割在数值上等同于最大流.割去权值和最小的边,使图分成两部分,割下来的边权值和为最小割. 对于此题,先不考虑种在一起的情 ...

  6. 【01背包求方案数模板】洛谷 P1164 小A点菜

    洛谷 P1164 小A点菜 https://www.luogu.org/problemnew/show/P1164 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆, ...

  7. 洛谷[P1120 小木棍]

    洛谷[P1120 小木棍] 题目: 思路: 枚举小木棒可能的长度,从数组最大值开始枚举,这个值能被总长度整除才是可行的 在使用dfs枚举小木棒的每一种可能,如果不可能就找下一个可能的长度开始枚举 注意 ...

  8. 网络流建图方法(二)——辅助点(虚点)决策法洛谷 P1361 小M 的作物 Dinic

    inic声明:本博客默认读者会最大流最小割的定理,会Dinic, 最小割在数值上 == 最大流 但是在意义上没有任何关系,姑且可以这样求得最小割,当然可以自行百度最小割的证明定理 还是从题目开始说起 ...

  9. 洛谷-P1125-笨小猴

    [NOIP2008 提高组] 笨小猴 - 洛谷 解题思路: 1.由题可得,输入一个只包含字母的字符串,那么用string str 来表示,判断里面字母出现最多的次数和最少的次数,max和min 2.如 ...

最新文章

  1. oracle高级查询用法
  2. 哈尔特征(Haar-like features)
  3. cocos2dx之lua项目开发中MVC框架的简单应用
  4. Jedis 设置key的超时时间
  5. php+nginx导入太大文件报http error错误的原因
  6. leetcode613. 直线上的最近距离(SQL)
  7. 使用fastjson工具类json字符串和对象之间的转换
  8. git/ssh捋不清的几个问题
  9. 无法安装 DotNetCore.1.0.0-VS2015Tools.Preview2解决方法
  10. 查看Sql Server2016是否激活
  11. 《c语言程序设计》第一次网上作业,精编国家开放大学电大《C语言程序设计》《劳动与社会保障法》网络课形考网考作业(合集)答案...
  12. 【GitHub上传文件夹:bug】 ! [rejected] master - master (non-fast-forward)
  13. TypeScript - 函数
  14. 奥鹏福建师范计算机应用作业,奥鹏福建师范【计算机应用基础】在线作业一、二答案在末尾...
  15. 东西方赌王“口水战”升级 措词激烈论“竞争”
  16. OpenMP求PI的四种方式
  17. pHP分析网站日志,通过用数据挖掘技术来分析Web网站日志?
  18. 关于php中的print EOF
  19. 线性回归和贝叶斯的线性回归
  20. 从现在开始,和copy正则say拜拜!

热门文章

  1. Intel(Altera)FPGA的SOF转JIC文件和下载详细教程
  2. 计算机应用杂志论文格式要求,计算机应用专业论文格式说明.doc
  3. python基础day-15:time、hash、json
  4. android locale app内设置,Android app应用多语言切换功能实现
  5. C# GridView 冻结列 冻结表头
  6. bat脚本执行sql脚本
  7. Python多进程写Kafka
  8. IOS之 上传App预览和截屏规范
  9. 硬核 - Java 随机数相关 API 的演进与思考(上)
  10. html选择按键点击后锁死输入框_js Dom为页面中的元素绑定键盘或鼠标事件