java蓝桥杯练习 比赛安排
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。
输入格式
输入文件matchplan.in共一行,输入n的数值。
输出格式
输出文件matchplan.out共(2 n – 1)行,第i行输出第i天的比赛安排。
格式为: A-B,C-D,……。其中i是天数,A,B分别为比赛双方的编号,每行共2 n-1个比赛场次。
样例输入
2
样例输出
<1>1-2,3-4
<2>1-3,2-4
<3>1-4,2-3
//java code
import java.util.*;
public class Main {
public final static int size=1<<6;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[][]=new int[size+1][size+1];
int v[]=new int[size+1];
int n=sc.nextInt();
int len=(int)Math.pow(2,n);
for (int i = 1; i < len; i++) {
Arrays.fill(v,0);
System.out.print("<"+i+">");
for (int j = 1; j <= len/2; j++) {
for (int k = 1; k <= len; k++) {
if(v[k]==1)
continue;
for (int l = 1; l <= len; l++) {
if(l==k)
continue;
if(v[l]==1)
continue;
if(a[l][k]==0&&a[k][l]==0){
System.out.print(k+"-"+l+" ");
v[k]=1;
v[l]=1;
a[k][l]=1;
a[l][k]=1;
break;
}
}
}
}
System.out.println();
}
}
}