码迷,mamicode.com
首页 > 其他好文 > 详细

比赛安排

时间:2020-02-25 20:17:41      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:输出   rgs   计划   mat   port   比赛   print   import   out   

问题描述
  设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。
输入格式
  输入文件matchplan.in共一行,输入n的数值。
输出格式
  输出文件matchplan.out共(2 n – 1)行,第i行输出第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
import java.util.Arrays;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        
        Scanner s=new Scanner(System.in);
        int a[][]=new int[65][65];
        int v[]=new int[65];
        int n=s.nextInt();
        //2的n次方
        int len=(int) Math.pow(2,n);
        for(int i=1;i<=len-1;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 h = 1; h <= len; h++) 
                    {
                        if (h == k) continue;
                        
                        if (v[h] == 1) continue;
                        
                        if (a[h][k] == 0 && a[k][h] == 0) 
                        {
                            System.out.print(k + "-" + h + " ");
                            v[k] = 1;
                            v[h] = 1;
                            a[k][h] = 1;
                            a[h][k] = 1;
                            break;
                        }
                    }
                }
            }
            System.out.println();
        }
        
    }


}

 

比赛安排

标签:输出   rgs   计划   mat   port   比赛   print   import   out   

原文地址:https://www.cnblogs.com/shiaguang/p/12363082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!