循环赛10分求调
  • 板块学术版
  • 楼主Ron_Tian
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/25 22:35
  • 上次更新2024/8/26 10:04:51
查看原帖
循环赛10分求调
1061128
Ron_Tian楼主2024/8/25 22:35

代码如下

//循环比赛日程表 
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3;
int m,n;
int a[N][N];
int game_table(int n) {
	if (n == 2) {
		a[1][1] = a[2][2] = 1;
		a[1][2] = a[2][1] = 2;
		return 1;
	}
	if (n > 2) game_table(n/2);
	
	for(int i = n;i > n/2; i--){
		for(int j = 1; j <= n; j++) {
			a[i][j] = a[i - n / 2][j] + n / 2; 
		}
	}
	
	for(int i = 1; i <= n / 2; i++) {
		for(int j = n;j > n / 2; j--) {
			a[i][j] = a[j][i];
		}
	}
	
	for(int i = n; i > n / 2;i--) {
		for(int j = n;j > n / 2; j-- ) {
			a[i][j] = a[i - n / 2][j - n / 2];
		}
	}
}

int main(){
	cin >> m;
	n = pow(2,m);
	game_table(n);
	for(int i = 1;i <= n; i++) {
		for(int j = 1;j <= n; j++) {
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
	return 0;
}

它TLE了。求大佬帮忙优化

2024/8/25 22:35
加载中...