博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO习题:Transformations
阅读量:6041 次
发布时间:2019-06-20

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

第一次题目没看清,以为是给定一个矩形,求最小的变换路线,我想SEC1和2原来差距如此之大啊。。。

后来仔细一看,只要变一次,这个题目就编程弱智题了。

我比较懒,没有一个一个旋转去写,而是实现了1个顺时针九十度和一个镜像。

 

顺时针90度,数组下标变换策略:目标矩阵(j,N-i-1)  <-- 原矩阵(i,j) ,其中N为矩阵的宽度

垂直镜像:目标矩阵(i,j)  <-- 原矩阵(i,N-j-1) ,其中N为矩阵的宽度

 

知道这些代码就非常好写

View Code
1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 10 template
11 void rotate90(vector
> &src,vector
> &dest){ 12 int N=src.size(); 13 for(T i=0;i
19 void rotate180(vector
> &src,vector
> &dest){ 20 int N=src.size();vector
> buf(N,vector
(N,0)); 21 rotate90(src,buf); 22 rotate90(buf,dest); 23 } 24 25 template
26 void rotate270(vector
> &src,vector
> &dest){ 27 int N=src.size();vector
> buf(N,vector
(N,0)); 28 rotate180(src,buf); 29 rotate90(buf,dest); 30 } 31 32 template
33 void reflect(vector
> &src,vector
> &dest){ 34 int N=src.size(); 35 for(T i=0;i
41 void reflect_rotate90(vector
> &src,vector
> &dest){ 42 int N=src.size();vector
> buf(N,vector
(N,0)); 43 reflect(src,buf); 44 rotate90(buf,dest); 45 } 46 47 template
48 void reflect_rotate180(vector
> &src,vector
> &dest){ 49 int N=src.size();vector
> buf(N,vector
(N,0)); 50 reflect(src,buf); 51 rotate180(buf,dest); 52 } 53 54 template
55 void reflect_rotate270(vector
> &src,vector
> &dest){ 56 int N=src.size();vector
> buf(N,vector
(N,0)); 57 reflect(src,buf); 58 rotate270(buf,dest); 59 } 60 61 62 63 template
64 void read_matrix(ifstream& is, vector
> &dest){ 65 int N=dest.size(); 66 char temp=0; 67 for(int i=0;i
>temp; 70 dest[i][j]=temp; 71 } 72 } 73 } 74 75 template
76 void pm(vector
> &matrix){ 77 cout<<"--------------"<
86 bool equal(vector
> &src,vector
> &dest){ 87 for(int i=0;i
>length; 101 102 vector
> base(length,vector
(length,0)); 103 vector
> buf(length,vector
(length,0)); 104 vector
> dest(length,vector
(length,0)); 105 read_matrix(fin,base); 106 read_matrix(fin,dest); 107 108 /* 109 pm(base); 110 pm(dest); 111 112 113 rotate90(base,buf); 114 pm(buf); 115 rotate180(base,buf); 116 pm(buf); 117 rotate270(base,buf); 118 pm(buf); 119 */ 120 121 122 rotate90(base,buf); 123 if(equal(buf,dest)){ 124 fout<<1<
>src[i][j]; 180 } 181 } 182 */ 183 //read_matrix(fin,src); 184 185 186 /* 187 188 char abc[][3] = { 189 '1','2','3', 190 '4','5','6', 191 '7','8','9' 192 }; 193 194 195 char buf[3][3]; 196 197 pmatrix(abc); 198 rotate90(abc,buf); 199 pmatrix(buf); 200 rotate180(abc,buf); 201 pmatrix(buf); 202 rotate270(abc,buf); 203 pmatrix(buf); 204 reflect(abc,buf); 205 pmatrix(buf); 206 reflect_rotate90(abc,buf); 207 pmatrix(buf); 208 reflect_rotate180(abc,buf); 209 pmatrix(buf); 210 reflect_rotate270(abc,buf); 211 pmatrix(buf); 212 213 */ 214 215 end: 216 217 fin.close(); 218 fout.close(); 219 return 0; 220 }

转载于:https://www.cnblogs.com/lzyzizi/archive/2012/03/26/2417554.html

你可能感兴趣的文章
数据类型
查看>>
介绍Python的魔术方法 - Magic Method
查看>>
c++基础知识
查看>>
批量删除项目文件夹中的SVN文件,注册表实现右键删除菜单
查看>>
MVC框架映射与解耦的进化史
查看>>
Spring AOP 对Spring MVC的Controller切面拦截不起作用
查看>>
异步任务的理解
查看>>
简单的分词parse
查看>>
使用Golang实现的快速排序
查看>>
PHP函数
查看>>
hadoop资料
查看>>
JAVA NIO 实例
查看>>
bootsharp+springmvc+ibatis+mysql(2)
查看>>
shell跳板机(较复杂)
查看>>
HTML DOM alert() 方法
查看>>
SpringCloud(一)Eureka2.0
查看>>
8天学习MongoDB——第五天 主从复制
查看>>
JS右键失效
查看>>
OSSIM(开源大数据安全分析平台)荣登2017年度Gartner SIEM魔力象限
查看>>
安装各种免费的缺陷跟踪工具就是一场折腾,Digger除外
查看>>