为什么我没写模拟退火都有 70tps
  • 板块P3936 Coloring
  • 楼主MWL_wma
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/7/31 20:17
  • 上次更新2025/8/1 11:16:18
查看原帖
为什么我没写模拟退火都有 70tps
1023017
MWL_wma楼主2025/7/31 20:17
#include <bits/stdc++.h>
using namespace std;
int n, m, c;
int mp[22][22];
int p[52];

int main() {
	scanf("%d%d%d", &n, &m, &c);
	for (int i = 0; i <= n + 1; i++) {
		mp[i][0] = mp[i][m + 1] = 114514;
	}
	for (int i = 1; i <= m; i++) {
		mp[0][i] = mp[n + 1][i] = 114514;
	}
	for (int i = 1; i <= c; i++) {
		scanf("%d", &p[i]);
	}
	int x = 1, y = 1, op = 1;
	for (int i = 1; i <= c; i++) {
		int p_ = p[i];
//		printf("%d\n", p_);
		while (p_ > 0) {
			while (p_-- && !mp[x][y]) {
				mp[x][y] = i;
				y += op;
			}
			++p_;
			if (mp[x][y]) {
				++x;
				op = -op;
				if (op == 1) {
					y = 1;
				} else {
					y = m;
				}
			}
//			Sleep(200);
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			printf("%d ", mp[i][j]);
		}
		puts("");
	}
	return 0;
}
2025/7/31 20:17
加载中...