⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 [a]土豆星人的难题.cpp

📁 某校acm月赛题目以及源代码
💻 CPP
字号:
#include <stdio.h>
#include <string.h>

int main()
{
	const int MAX = 10;
	typedef int matrix[MAX][MAX];
	char query[3][10] = {"rotate", "roll", "add"};
	
	matrix in, tmp;
	int t, m, i, j, ncase;
	
	//freopen("A.in", "r", stdin);
	//freopen("A.out", "w", stdout);
	scanf("%d", &ncase);
	while(ncase--)
	{
		scanf("%d", &m);
		for(i = 0; i < m; i++)
			for(j = 0; j < m; j++)
				scanf("%d", &in[i][j]);
		
		scanf("%d", &t);
		while(t--)
		{
			char tmp_query[10];
			scanf("%s", tmp_query);
			for(i = 0; i < 3; i++)
				if(!strcmp(tmp_query, query[i]))
					break;
					
			if(i == 0)
			{
				int degree;
				int k, h;
				scanf("%d", &degree);
	
				while(degree)
				{
					
					degree -= 90;
					for(k = 0; k < m; k++)
						for(h = 0; h < m; h++)
							tmp[k][h] = in[m - h - 1][k];
					
					for(k = 0; k < m; k++)
						for(h = 0; h < m; h++)
						in[h][k] = tmp[h][k];
				}
			}
			
			else if(i == 1)
			{
				int method;
				int k, h;
				
				scanf("%s", tmp_query);
				scanf("%d", &method);
				if(method)
				{
					for(k = 0; k < m; k++)
						for(h = 0; h < (m >> 1); h++)
						{
							in[k][h] = in[k][h] ^ in[k][m - h - 1];
							in[k][m - h - 1] = in[k][h] ^ in[k][m - h - 1];
							in[k][h] = in[k][h] ^ in[k][m - h - 1];
						}
				}
				else
				{
					for(k = 0; k < (m >> 1); k++)
						for(h = 0; h < m; h++)
						{
							in[k][h] = in[k][h] ^ in[m - k - 1][h];
							in[m - k - 1][h] = in[k][h] ^ in[m - k - 1][h];
							in[k][h] = in[k][h] ^ in[m - k - 1][h];
						}
				}
			}
			
			else
			{
				int tmp_num;
				int k, h;
				
				for(k = 0; k < m; k++)
					for(h = 0; h < m; h++)
					{
						scanf("%d", &tmp_num);
						in[k][h] += tmp_num;
					}
			}	
		}
		
		for(i = 0; i < m; i++)
		{
			for(j = 0; j < m - 1; j++)
				printf("%d ", in[i][j]);
			printf("%d\n", in[i][j]);
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -