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

📄 1801.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include <iostream>
using namespace std;
char paint[101][101];
char white[101][101];
int m, n, r, c;
void change(int a, int b, int c, int d)
{
	int i, j;
	for (i = a; i < a + c; i++)
	{
		for (j = b; j < b + d; j++)
		{
			if (white[i][j] == '0')
			{
				white[i][j] = '1';
			}
			else if (white[i][j] == '1')
			{
				white[i][j] = '0';
			}
		}
	}
}
int main()
{
	int i, j, step;
	while (cin >> m >> n >> r >> c)
	{
		if (m == 0 && n == 0 && r == 0 && c == 0)
		{
			break;
		}
		for (i = 0; i < m; i++)
		{
			scanf("%s", paint[i]);
			for (j = 0; j < n; j++)
			{
				white[i][j] = '0';
			}
		}
		for (step = 0, i = 0; i < m - r + 1; i++)
		{
			for (j = 0; j < n - c + 1; j++)
			{
				if (white[i][j] != paint[i][j])
				{
					change(i, j, r, c);
					step++;
				}
			}
		}
		for (i = 0; i < m; i++)
		{
			for (j = 0; j < n; j++)
			{
				if (white[i][j] != paint[i][j])
				{
					step = -1;
					break;
				}
			}
		}
		cout << step << endl;
	}
	return 0;
}

⌨️ 快捷键说明

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