目录标题

  • 题目描述
  • 解题思路
  • 代码

题目描述

设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。

输入
输入描述:
  输入文件matchplan.in共一行,输入n的数值。
输入样例:
2

输出

输出描述:
  输出文件matchplan.out共(2 n – 1)行,第i行输出第i天的比赛安排。
  格式为: A-B,C-D,……。其中i是天数,A,B分别为比赛双方的编号,每行共2 n-1个比赛场次。
输出样例:
<1>1-2 3-4
<2>1-3 2-4
<3>1-4 2-3

HINT:时间限制:1.0s 内存限制:512.0MB

解题思路

用两个数组进行循环,一个放参赛队伍,另一个放比赛的队伍,每日清零。若今日参加了比赛就标记一次。循环2的n次方-1天。还需要注意的是只有最后一天的最后一场比赛后不输出" ",其余的都要

代码

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner= new Scanner(System.in);int n = scanner.nextInt();int sum = (int)Math.pow(2, n);  // 比赛总队伍int group =(int)Math.pow(2, n-1); //一天比赛的组数int day = sum-1;  // 比赛天数boolean[][] groupOver = new boolean[sum+1][sum+1];  // 记录哪两支队伍已经参加了比赛boolean[] vis = new boolean[sum+1];  // 记录一天里该队伍是否已经有了安排for(int i=1;i<=day;i++) {Arrays.fill(vis,false);  // 初始化数组int count = 0;  // 计组数,每天初始化一次System.out.print("<"+i+">");for(int j=1;j<=sum;j++) {if(vis[j]) {continue; // 第j支队伍如果已经作为了前面队伍的选手则跳过}vis[j]=true;  // 为第j支队伍安排对手,标记其已被遍历过for(int k=j;k<=sum;k++) {if(!vis[k]&&!groupOver[j][k]) {//如果从小到大找到队伍k,且j队伍与k队伍没有比赛过而且k队伍在1当天还没有安排则安排j与k比赛groupOver[j][k]=true; // 标记j,k两支队伍已经比过vis[k]=true;  // 标记k被遍历过count++;  // 表示比赛组数System.out.printf("%d-%d",j,k);  // 输出比赛的两队if(count!=group) {System.out.print(" ");  //每场比赛中隔开}break;}}}if (i!=day){System.out.print(" ");//整组比赛的最后一天不输出" ".}System.out.println();}}
}

Java 算法 比赛安排相关推荐

  1. 蓝桥杯 ALGO-65 算法训练 比赛安排

    问题描述 设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛.设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛. 输入格式 输入 ...

  2. 蓝桥杯算法训练合集十二 1.比较2.计算最小公倍数3.比赛安排4.潜伏者5.P0702

    目录 1.比较 2.计算最小公倍数 3.比赛安排 4.潜伏者 5.P0702 1.比较 问题描述 给出一个n长的数列,再进行m次询问,每次询问询问两个区间[L1,R1],[L2,R2], 询问数列第L ...

  3. 约瑟夫问题JAVA算法

    去年学院举办的算法设计比赛,当时使用的c语言来描述的,而且当时刚刚学了数据结构.于是就用到循环链表来解决,虽然答案没有完全出来,但是评分的老师,看了我的代码和思路,也许是半个感情分,毕竟是学校的算法比 ...

  4. 我整理了50道经典Java算法题,直接进了字节跳动!!

    写在前面 最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高.于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能力.我:没问题啊!于是,经过半个多 ...

  5. 如何在topcoder上进行算法比赛

    原文地址:如何在topcoder上进行算法比赛作者:[如来] topcoder的竞赛页面地址:http://www.topcoder.com/tc   topcoder竞赛有算法,软件设计,软件开发, ...

  6. Ai关于目标检测类算法比赛的经验总结

    内容来源于 宅码,作者Ai. 附一张作者签名--艾宏峰! 导读: 本文为作者自己参加的三个目标检测类算法比赛的经验总结,分为五个部分:数据研究和准备.参数调节.模型验证以及模型融合,作者还给出了一些关 ...

  7. 一些常用的java算法练习

    一些常用的java算法练习 如果有出错的程序请欢迎指出 目录 文章目录 一些常用的java算法练习 目录 练习题目 1.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四 ...

  8. 参加了个算法比赛,真是一言难尽啊

    hello大家好呀,我是小楼. 上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊. 这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学 ...

  9. java算法竞赛必备之快读快写(超详细解读)

    java算法竞赛必备之快读快写(超详细解读) java写算法的缺点:速度慢.读写复杂.莫名WA(错误答案).TL(超时).CL(超内存)- (那我们还学个啥啊,都转c++写算法不香嘛.)别急别急,有缺 ...

最新文章

  1. 查看本机中的python第三方库文档
  2. java1.5连接oracle12c_java1.5连接oracle12c
  3. 《JavaScript设计模式与开发实践》读书笔记之中介者模式
  4. python图书管理系统增删改查_固定资产管理系统,高效管理企业资产
  5. 这些将在新一年改变你的风控内容
  6. 提气!阿里平头哥三篇论文入选 ISCA
  7. HardSoft-Viewer SQL
  8. 决胜新能源汽车战场:价格拖死战、舆论声量战、产业兼并战
  9. XMPP即时通讯协议使用(前传)——协议详解
  10. 用html设计logo,网页设计中的logo设计方法
  11. web测试-WEB常用测试用例集
  12. 评价最高影片JAVAlibrary_《鼠胆英雄》:影片烂不烂,观众说了算
  13. rasa_nlu踩坑经历
  14. vivo手机可以适配鸿蒙系统吗,originos系统适配机型 vivo全新手机系统支持哪些机型...
  15. 天龙单机服务器维护,天龙八部网游单机服务器修改资料(Dragon eight online games, single server, modify information).doc...
  16. windows10驱动 x64--- 3环代码加载驱动(二)
  17. 点击链接弹出qq对话框
  18. matlab近红外光谱曲线,Matlab预处理近红外光谱.docx
  19. 浅谈穿越机飞控如何烧写固件及其相关设置问题
  20. jQuery入门基础——选择器

热门文章

  1. 如何下载项目所需要jar包
  2. android获取程序名称,Android获取应用程序名称(ApplicationName)示例
  3. python脚本多少钱一个_一个python脚本
  4. python方法解析顺序_浅谈Python的方法解析顺序(MRO)
  5. linux domino启动和停止命令,在unix平台中通过脚本来启动和停止domino和domino控制器所用的参数_lotus notes...
  6. 计算机多了一个虚拟硬盘,移动硬盘中安装多个虚拟操作系统 -电脑资料
  7. 【ShaderToy】跳动的心
  8. Easy-mock让团队协作效率提高不止一点点
  9. 10亿个数中求最大的10个数字
  10. Centos7最小化安装