链接

分析:根据操作模拟

  1. /*
  2. ID:wanghan
  3. PROB:transform
  4. LANG:C++
  5. */
  6. #include "iostream"
  7. #include "cstdio"
  8. #include "cstring"
  9. #include "string"
  10. #include "cmath"
  11. using namespace std;
  12. const int maxn=;
  13. string s[maxn],solve[maxn];
  14. int n;
  15. bool Turn3(string str[],string val[]){
  16. char t[maxn][maxn];
  17. for(int i=;i<n;i++){
  18. for(int j=;j<n;j++){
  19. t[i][j]=s[j][n--i];
  20. }
  21. }
  22. /*for(int i=0;i<n;i++){
  23. for(int j=0;j<n;j++)
  24. cout<<t[i][j];
  25. cout<<endl;
  26. }
  27. cout<<endl;*/
  28. int flag=;
  29. for(int i=;i<n;i++){
  30. for(int j=;j<n;j++)
  31. if(t[i][j]!=val[i][j]){
  32. flag=; break;
  33. }
  34. if(flag) break;
  35. }
  36. if(flag) return false;
  37. return true;
  38. }
  39. bool Turn2(string str[],string val[]){
  40. char t[maxn][maxn];
  41. for(int i=;i<n;i++){
  42. for(int j=;j<n;j++)
  43. t[i][j]=str[n-i-][n-j-];
  44. }
  45. /*for(int i=0;i<n;i++){
  46. for(int j=0;j<n;j++)
  47. cout<<t[i][j];
  48. cout<<endl;
  49. }
  50. cout<<endl;*/
  51. int flag=;
  52. for(int i=;i<n;i++){
  53. for(int j=;j<n;j++)
  54. if(t[i][j]!=val[i][j]){
  55. flag=; break;
  56. }
  57. if(flag) break;
  58. }
  59. if(flag) return false;
  60. return true;
  61. }
  62. bool Turn1(string str[],string val[]){
  63. char t[maxn][maxn];
  64. for(int i=;i<n;i++){
  65. for(int j=;j<n;j++)
  66. t[i][j]=str[n--j][i];
  67. }
  68. /*for(int i=0;i<n;i++){
  69. for(int j=0;j<n;j++)
  70. cout<<t[i][j];
  71. cout<<endl;
  72. }
  73. cout<<endl;*/
  74. int flag=;
  75. for(int i=;i<n;i++){
  76. for(int j=;j<n;j++)
  77. if(t[i][j]!=val[i][j]){
  78. flag=; break;
  79. }
  80. if(flag) break;
  81. }
  82. if(flag) return false;
  83. return true;
  84. }
  85. bool Turn4(string str[],string val[]){
  86. for(int i=;i<n;i++){
  87. for(int j=;j<n/;j++)
  88. swap(str[i][j],str[i][n--j]);
  89. }
  90. /*for(int i=0;i<n;i++){
  91. for(int j=0;j<n;j++)
  92. cout<<str[i][j];
  93. cout<<endl;
  94. }
  95. cout<<endl;*/
  96. int flag=;
  97. for(int i=;i<n;i++){
  98. for(int j=;j<n;j++)
  99. if(str[i][j]!=val[i][j]){
  100. flag=; break;
  101. }
  102. if(flag) break;
  103. }
  104. if(flag) return false;
  105. return true;
  106. }
  107. bool Turn5(string str[],string val[]){
  108. char t1[maxn][maxn],t2[maxn][maxn],t3[maxn][maxn];
  109. /*for(int i=0;i<n;i++){
  110. for(int j=0;j<n/2;j++)
  111. swap(str[i][j],str[i][n-1-j]);
  112. }*/
  113. for(int i=;i<n;i++){
  114. for(int j=;j<n;j++)
  115. t1[i][j]=str[n--j][i];
  116. }
  117. int flag=;
  118. for(int i=;i<n;i++){
  119. for(int j=;j<n;j++)
  120. if(t1[i][j]!=val[i][j]){
  121. flag=; break;
  122. }
  123. if(flag) break;
  124. }
  125. if(!flag) return true;
  126. /*for(int i=0;i<n;i++){
  127. for(int j=0;j<n;j++)
  128. cout<<t1[i][j];
  129. cout<<endl;
  130. }
  131. cout<<endl;*/
  132. for(int i=;i<n;i++){
  133. for(int j=;j<n;j++)
  134. t2[i][j]=str[n-i-][n-j-];
  135. }
  136. flag=;
  137. for(int i=;i<n;i++){
  138. for(int j=;j<n;j++)
  139. if(t2[i][j]!=val[i][j]){
  140. flag=; break;
  141. }
  142. if(flag) break;
  143. }
  144. if(!flag) return true;
  145. /*for(int i=0;i<n;i++){
  146. for(int j=0;j<n;j++)
  147. cout<<t2[i][j];
  148. cout<<endl;
  149. }
  150. cout<<endl;*/
  151. for(int i=;i<n;i++){
  152. for(int j=;j<n;j++){
  153. t3[i][j]=str[j][n--i];
  154. }
  155. }
  156. //int flag=0;
  157. flag=;
  158. for(int i=;i<n;i++){
  159. for(int j=;j<n;j++)
  160. if(t3[i][j]!=val[i][j]){
  161. flag=; break;
  162. }
  163. if(flag) break;
  164. }
  165. /*for(int i=0;i<n;i++){
  166. for(int j=0;j<n;j++)
  167. cout<<t3[i][j];
  168. cout<<endl;
  169. }
  170. cout<<endl;*/
  171. if(!flag) return true;
  172. return false;
  173. }
  174. bool Turn6(string str[],string val[]){
  175. int flag=;
  176. for(int i=;i<n;i++){
  177. for(int j=;j<n;j++)
  178. if(str[i][j]!=val[i][j]){
  179. flag=; break;
  180. }
  181. if(flag) break;
  182. }
  183. if(flag) return false;
  184. return true;
  185. }
  186. int main()
  187. {
  188. freopen("transform.in", "r", stdin);
  189. freopen("transform.out", "w", stdout);
  190. while(cin>>n){
  191. for(int i=;i<n;i++){
  192. cin>>s[i];
  193. }
  194. for(int i=;i<n;i++){
  195. cin>>solve[i];
  196. }
  197. if(Turn1(s,solve)){
  198. cout<<""<<endl;
  199. }else if(Turn2(s,solve)){
  200. cout<<""<<endl;
  201. }else if(Turn3(s,solve)){
  202. cout<<""<<endl;
  203. }else if(Turn4(s,solve)){
  204. cout<<""<<endl;
  205. }else if(Turn5(s,solve)){
  206. cout<<""<<endl;
  207. }else if(Turn6(s,solve)){
  208. cout<<""<<endl;
  209. }else{
  210. cout<<""<<endl;
  211. }
  212. }
  213. return ;
  214. }

Transformations的更多相关文章

  1. [大数据之Spark]——Transformations转换入门经典实例

    Spark相比于Mapreduce的一大优势就是提供了很多的方法,可以直接使用:另一个优势就是执行速度快,这要得益于DAG的调度,想要理解这个调度规则,还要理解函数之间的依赖关系. 本篇就着重描述下S ...

  2. 【USACO】Transformations(模拟)

    Transformations A square pattern of size N x N (1 <= N <= 10) black and white square tiles is ...

  3. WPF Wonders: Transformations (and Robots!)

    indows Presentation Framework (WPF) gets a lot of mileage out of being layered on top of DirectX, in ...

  4. [Compose] 21. Apply Natural Transformations in everyday work

    We see three varied examples of where natural transformations come in handy. const Right = x => ( ...

  5. [Compose] 20. Principled type conversions with Natural Transformations

    We learn what a natural transformation is and see the laws it must obey. We will see how a natural t ...

  6. Glossary of view transformations

    Glossary of view transformations The following terms are used to define view orientation, i.e. trans ...

  7. 【USACO】Transformations

    A square pattern of size N x N (1 <= N <= 10) black and white square tiles is transformed into ...

  8. [USACO1.2.2]方块转换 Transformations

    P1205 [USACO1.2]方块转换 Transformations 标签 搜索/枚举 USACO 题目描述 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方 ...

  9. SSIS 阻塞,半阻塞和全阻塞 (Non-blocking, semi-blocking and Fully-blocking) transformations清单

    三种Blocking类型,这里跟数据流的Buff关系很大:■■ non-blocking transformations,每一行直接转换输出,没有等待.■■ partial-blocking tran ...

  10. spark的action和transformations汇集

    汇总了Spark支持的Transformations 和Actions 用于备忘! 參考 http://spark.apache.org/docs/latest/programming-guide.h ...

随机推荐

  1. STM32F10x_StdPeriph_Driver_3.5.0(中文版).chm的使用

    以熟悉的固件库函数说明中函数GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_IintTypeDef *GPIO_InitStructure)为例 GPIOA...G       ...

  2. Windows下maven安装配置(包括本地化仓库配置)

    一.下载maven maven官网:http://maven.apache.org/ 下载下来也就是一个压缩文件,解压.我下载的是3.5.2版本,解压之后如下: 路径为 :D:\Program Fil ...

  3. org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32

    org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32 Most likely, ...

  4. ps --sort排序功能

    ps aux --sort +rss/rss根据内存正序排 ps aux --sort -rss 逆序 ps aux --sort -pid/pid ps aux --sort %cpu/-%cpu ...

  5. 全能无线渗透测试工具,一个LAZY就搞定了

    近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦.就想看看是否可以有一款功能全面的集合型工具. 正所谓功夫不负有心人,还真有这么一个 ...

  6. SolidEdge 工程图中如何显示彩色工程图

    点击这个按钮,然后更新视图   效果如下图所示,注意如果你的装配图(.dft文件)是单独拷贝出来的,装配图所引用的零件无法追溯到,则无法渲染这些零件,因此无法制作彩色工程图.

  7. 子组件跟随父组件re-render

    想象一下这种场景,一个父组件下面一大堆子组件.然后呢,这个父组件re-render.是不是下面的子组件都得跟着re-render.可是很多子组件里面是冤枉的啊!!很多子组件的props 和 state ...

  8. nc和telnet配合使用

    nc -l 9932 -c  用nc监听9932端口 telnet 180.150.184.115 29933  telnet 29932 端口

  9. Bean property XX&#39; is not writable or has an invalid setter method

    刚刚搞spring.property注入时遇到这个问题,百度一下.非常多人说是命名或者get set方法不一致的问题,可是这个我是知道的.写的时候也注意到这些.所以应该不是这个问题.以为是xml头写的 ...

  10. 【转载】分布式RPC框架性能大比拼

    dubbo.motan.rpcx.gRPC.thrift的性能比较 Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 ...