前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法:7-1 循环日程安排问题

算法:7-1 循环日程安排问题

作者头像
小颜同学
发布2023-08-24 08:18:29
2080
发布2023-08-24 08:18:29
举报
文章被收录于专栏:原创笔记原创笔记

用分治法求解循环日程安排问题。设有n=2k个选手要进行网球循环赛,要求设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次。 (2)每个选手一天只能赛一次。 (3)循环赛在n-1天之内结束。

输入样例:

输入K值。

代码语言:javascript
复制
3

输出样例:

输出比赛日程表。

代码语言:javascript
复制
1 2 3 4 5 6 7 8 
2 1 4 3 6 5 8 7 
3 4 1 2 7 8 5 6 
4 3 2 1 8 7 6 5 
5 6 7 8 1 2 3 4 
6 5 8 7 2 1 4 3 
7 8 5 6 3 4 1 2 
8 7 6 5 4 3 2 1 
代码语言:javascript
复制
代码长度限制									    16 KB

时间限制										400 ms

内存限制										 64 MB

代码演示:

代码语言:javascript
复制
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int n,temp,i,j,t;
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        //选手的个数
        int sum = (int) Math.pow(2,k);
        int a[][] = new int[sum+1][sum+1];
        n=2;
        a[1][1]=1;
        a[1][2]=2;
        a[2][1]=2;
        a[2][2]=1;
        for (t=1; t<k; t++) {
            temp=n;
            n=n*2;
            for (i=temp+1; i<=n; i++) {
                for (j = 1; j <= temp; j++){
                    a[i][j] = a[i - temp][j] + temp;
                }
            }
            for (i=1; i<=temp; i++) {
                for (j = temp + 1; j <= n; j++) {
                    a[i][j] = a[i + temp][(j + temp) % n];
                }
            }
            for (i=temp+1; i<=n; i++) {
                for (j = temp + 1; j <= n; j++) {
                    a[i][j] = a[i - temp][j - temp];
                }
            }
        }
        for (int l = 1; l <= sum; l++) {
            for (int m = 1; m <= sum; m++) {
                System.out.print(a[l][m]+" ");
            }
            System.out.println("");
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入样例:
  • 输出样例:
  • 代码演示:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档