不清楚问题出哪里,求调,玄关
查看原帖
不清楚问题出哪里,求调,玄关
1392483
KUN_jinbuzhixing楼主2025/6/22 06:04
#include <bits/stdc++.h>
using namespace std;
int n, m, xa, xb, b, xw;
char a[1005][1005];

void fg(int s, int v, char w) {
	for (int i = 1; i <= v; i++) {
		if (w == 'A' || w == 'B') {
			if (a[s - 1][i] != w && a[s + 1][i] != w) {
				a[s][i] = w;
			} else {
				a[s][i] = '#';
			}
		} else {
			a[s][i] = '#';
		}
	}

}

void fg2(int s, int v, char w) {
	for (int i = 1; i <= v; i++) {
		a[s][i] = w;
	}
}

int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {

		for (int j = 1; j <= m; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 1; i <= n; i++) {
		cout << "次数:" << i;
		b = 0;
		for (int y = 1; y <= m; y++) {
			if (a[i][y] == 'H') {
				xw = y;
				b = 1;
			}
		}

		for (int t = 1; t <= m; t++) {
			if (a[i][t] == 'A') {
				xa++;
			} else if (a[i][t] == 'B') {
				xb++;
			} else if (a[i][t] == 'H') {
				b = 1;
			}
		}
		//cout<<"A:"<<xa<<" B:"<<xb<<endl;
		if (b == 1) {

			int r1 = xw - xa - 1;
			int r2 = m - xw - xb;
			//	cout<<r1<<' '<<r2<<endl;
			fg2( i, xa, 'A');
			fg2( i, r1, '#');
			cout << "H";
			fg2( i, r2, '#');
			fg2(i, xb, 'B');
			xa, xb = 0;
		} else {
			if (xa > xb) {

				int r1 = m - xa;
				//		cout<<"r1:"<<r1<<endl;

				fg(i, r1, '#');
				fg(i, xa, 'A');

			} else if (xa < xb) {
				int r2 = m - xb;
				//	cout<<"r2:"<<r2<<endl;

				fg(i, xb, 'B');
				fg(i, r2, '#');

			} else {


				fg(i, m, '#');

			}
		}

		for (int d = 1; d <= m; d++) {
			cout << a[i][d];
		}
		cout << endl;
		xa = xb = 0;
	}
}

2025/6/22 06:04
加载中...