博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO--1.2Transformations
阅读量:2227 次
发布时间:2019-05-09

本文共 1362 字,大约阅读时间需要 4 分钟。

题意很容易理解,思路也是简单的,基本上就是直接模拟。但一开始我怎么也推不出原地旋转的坐标变换表达式(空间想象力不够。。。。。),导致卡了很久。

对于一个n*n的矩形(下标从1开始),其中一点(x,y)原地旋转90°后的坐标:(y,n-x+1);原地旋转180°后的坐标:(n-x+1,n-y+1);原地旋转270°后的坐标:(n-y+1,x).得到这个公式后代码就好写了,当然我们其实只需要写一个旋转90°的函数就行了,因为180°就是旋转2次90°吗,270度就是旋转3次90°吗。

代码如下:

/*ID: 15674811LANG: C++TASK: transform*/#include
#include
#include
#include
using namespace std;//ifstream fin("lkl.txt");ofstream fout("transform.out");ifstream fin("transform.in");int n;char m[12][12],goal[12][12];int check(){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(m[i][j]!=goal[i][j]) return 0; return 1;}void Rt_90(){ char tmp[12][12]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) tmp[j][n-i+1]=m[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) m[i][j]=tmp[i][j];}///水平反射,其实就是关于中轴线对称void Rf(){ int k=n/2; for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) { int t=m[i][j]; m[i][j]=m[i][n-j+1]; m[i][n-j+1]=t; }}void solve(){ int flag=0; if(check()) flag=1; for(int i=1;i<=3;i++) { Rt_90(); if(check()) { fout<
<
>n) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) fin>>m[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) fin>>goal[i][j]; solve(); } return 0;}

转载地址:http://pkrfb.baihongyu.com/

你可能感兴趣的文章
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>