#include using namespace std; //https://www.cnblogs.com/crx234/p/5988418.html //日程表 int a[100][100]; int n; //选手的个数 /* tox:目标数组的行号 toy:目标数组的列号 fromx:源数组的行号 fromy:源数组的列号 r:数组的大小为 r*r 这个函数本身没什么技术含量,就是一个方框内容拷贝的过程。关键在于调用时的参数传递。相当于一个辅助函数 */ void Copy(int fromx, int fromy, int tox, int toy, int r) { for (int i = 0; i < r; i++) //r*r这么大一块 for (int j = 0; j < r; j++) a[tox + i][toy + j] = a[fromx + i][fromy + j]; } void Print() { //输出日程表 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; } } //分治法的核心函数 void Table(int k) { n = 1 << k; // 1<> k; //计算日程表 Table(k); //输出表格 Print(); return 0; }