(2015年郑州轻工业学院ACM校赛题)I 旋转图像

时间:2023-03-09 18:31:11
(2015年郑州轻工业学院ACM校赛题)I   旋转图像

矩阵旋转,写一个转 90° 的函数就行了, 注意每次要将 长和宽的值进行交换就行了。

#include<stdio.h>
#include<iostream>
#include<stack>
#include<queue>
#include<math.h>
#include<stdlib.h>
#include<cstring>
#include<algorithm>
using namespace std;
#define Max(a,b) (a>b?a:b)
#define Min(a,b) (a<b?a:b)
#define INF 0xfffffff
#define maxn 110 char maps[maxn][maxn]; void FanZhuan(int n,int m)
{
int i, j;
char mat[maxn][maxn] = {};
for(i=; i<n; i++)
strcpy(mat[i], maps[i]);
memset(maps, , sizeof(maps)); for(i=; i<n; i++)
{
for(j=; j<m; j++)
{
maps[j][n--i] = mat[i][j];
}
}
} int main()
{
int T, m, n, i, j, k, t;
cin >> T; while(T--)
{
cin >> n >> m; for(i=; i<n; i++)
cin >> maps[i];
cin >> k;
int a = k%;
int b = k%; if(b == )
FanZhuan(n,m);
if(b == )
FanZhuan(n,m),FanZhuan(m,n);
if(b == )
{
FanZhuan(n,m);
FanZhuan(m,n);
FanZhuan(n,m);
} if(a == )
t = m, m = n, n = t; for(i=; i<n; i++)
{
puts(maps[i]);
}
}
return ;
}
/*
10
3 4
0001
0011
0111
90 */