题目:比赛安排
思路:
直接模拟选择情况,每天一个队只能参加一场比赛,用变量记录,隔天还原变量;
从小的队开始比,循环开始,满足条件的打比赛;
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int s = 115;
int g[s][s], a[s];
int main() {
int n;
int c1;
cin >> n;
for (int k = 1; k <= pow(2, n) - 1; k++)
{
cout<<"<"<<k<<">";
c1 = 0;
memset(a, 0, sizeof(a));
for (int i = 1; i <= pow(2, n); i++)
{
for (int j = i + 1; j <= pow(2, n); j++)
{
if (!g[i][j] && !a[j] && !a[i])
{
g[i][j] = a[j] = a[i] = 1;
printf("%d-%d", i, j), c1++;
if (c1 >= 1 && c1 < pow(2,n)/2)
{
cout << ",";
}else{
cout<<";";
cout << endl;
}
}
}
}
}
return 0;
}