信息奥赛一本通—编程启蒙(3373:练64.2 图像旋转翻转变换)

代码如下:

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int main(){
	vector<vector<int>> a, b;
	int m, n, i, j;
	string s;
	cin >> m >> n;
	for (i = 0; i < m; i++){
		vector<int> l;
		for (j = 0; j < n; j++)
		{
			int x;
			cin >> x;
			l.push_back(x);
		}
		a.push_back(l);
	}
	cin >> s;
	for (int k = 0; k < s.size(); k++){
		if (s[k] == 'A'){
			b.clear();
			for (i = 0; i < n; i++)
			{
				vector<int> l;
				for (j = 0; j < m; j++)
					l.push_back(a[m - 1 - j][i]);
				b.push_back(l);
			}
			a = b;
			swap(m, n);
		}
		else if (s[k] == 'B'){
			b.clear();
			for (i = 0; i < n; i++){
				vector<int> l;
				for (j = 0; j < m; j++)
					l.push_back(a[j][n - 1 - i]);
				b.push_back(l);
			}
			a = b;
			swap(m, n);
		}
		else if (s[k] == 'C'){
			for (i = 0; i < m; i++)
				reverse(a[i].begin(), a[i].end());
		}
		else if (s[k] == 'D'){
			for (i = 0; i < m / 2; i++)
				swap(a[i], a[m - 1 - i]);
		}
	}
	for (i = 0; i < m; i++){
		for (j = 0; j < n; j++){
			if (j > 0) cout << " ";
			cout << a[i][j];
		}
		cout << endl;
	}
	
	return 0;
}

网站链接:https://bas.ssoier.cn/problem_show.php?pid=3373

创作不易,给个关注吧🦀🦀

相关推荐
博客18002 小时前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴4 小时前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
复杂网络4 小时前
论最小 Agent 计算机的形态
算法
kisshyshy19 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
众少成多积小致巨21 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
猿人谷1 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络1 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络1 天前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4001 天前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4001 天前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法