Java 算法 比赛安排
目录标题
- 题目描述
- 解题思路
- 代码
题目描述
设有有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 算法 比赛安排相关推荐
- 蓝桥杯 ALGO-65 算法训练 比赛安排
问题描述 设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛.设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛. 输入格式 输入 ...
- 蓝桥杯算法训练合集十二 1.比较2.计算最小公倍数3.比赛安排4.潜伏者5.P0702
目录 1.比较 2.计算最小公倍数 3.比赛安排 4.潜伏者 5.P0702 1.比较 问题描述 给出一个n长的数列,再进行m次询问,每次询问询问两个区间[L1,R1],[L2,R2], 询问数列第L ...
- 约瑟夫问题JAVA算法
去年学院举办的算法设计比赛,当时使用的c语言来描述的,而且当时刚刚学了数据结构.于是就用到循环链表来解决,虽然答案没有完全出来,但是评分的老师,看了我的代码和思路,也许是半个感情分,毕竟是学校的算法比 ...
- 我整理了50道经典Java算法题,直接进了字节跳动!!
写在前面 最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高.于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能力.我:没问题啊!于是,经过半个多 ...
- 如何在topcoder上进行算法比赛
原文地址:如何在topcoder上进行算法比赛作者:[如来] topcoder的竞赛页面地址:http://www.topcoder.com/tc topcoder竞赛有算法,软件设计,软件开发, ...
- Ai关于目标检测类算法比赛的经验总结
内容来源于 宅码,作者Ai. 附一张作者签名--艾宏峰! 导读: 本文为作者自己参加的三个目标检测类算法比赛的经验总结,分为五个部分:数据研究和准备.参数调节.模型验证以及模型融合,作者还给出了一些关 ...
- 一些常用的java算法练习
一些常用的java算法练习 如果有出错的程序请欢迎指出 目录 文章目录 一些常用的java算法练习 目录 练习题目 1.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四 ...
- 参加了个算法比赛,真是一言难尽啊
hello大家好呀,我是小楼. 上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊. 这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学 ...
- java算法竞赛必备之快读快写(超详细解读)
java算法竞赛必备之快读快写(超详细解读) java写算法的缺点:速度慢.读写复杂.莫名WA(错误答案).TL(超时).CL(超内存)- (那我们还学个啥啊,都转c++写算法不香嘛.)别急别急,有缺 ...
最新文章
- 查看本机中的python第三方库文档
- java1.5连接oracle12c_java1.5连接oracle12c
- 《JavaScript设计模式与开发实践》读书笔记之中介者模式
- python图书管理系统增删改查_固定资产管理系统,高效管理企业资产
- 这些将在新一年改变你的风控内容
- 提气!阿里平头哥三篇论文入选 ISCA
- HardSoft-Viewer SQL
- 决胜新能源汽车战场:价格拖死战、舆论声量战、产业兼并战
- XMPP即时通讯协议使用(前传)——协议详解
- 用html设计logo,网页设计中的logo设计方法
- web测试-WEB常用测试用例集
- 评价最高影片JAVAlibrary_《鼠胆英雄》:影片烂不烂,观众说了算
- rasa_nlu踩坑经历
- vivo手机可以适配鸿蒙系统吗,originos系统适配机型 vivo全新手机系统支持哪些机型...
- 天龙单机服务器维护,天龙八部网游单机服务器修改资料(Dragon eight online games, single server, modify information).doc...
- windows10驱动 x64--- 3环代码加载驱动(二)
- 点击链接弹出qq对话框
- matlab近红外光谱曲线,Matlab预处理近红外光谱.docx
- 浅谈穿越机飞控如何烧写固件及其相关设置问题
- jQuery入门基础——选择器
热门文章
- 如何下载项目所需要jar包
- android获取程序名称,Android获取应用程序名称(ApplicationName)示例
- python脚本多少钱一个_一个python脚本
- python方法解析顺序_浅谈Python的方法解析顺序(MRO)
- linux domino启动和停止命令,在unix平台中通过脚本来启动和停止domino和domino控制器所用的参数_lotus notes...
- 计算机多了一个虚拟硬盘,移动硬盘中安装多个虚拟操作系统 -电脑资料
- 【ShaderToy】跳动的心
- Easy-mock让团队协作效率提高不止一点点
- 10亿个数中求最大的10个数字
- Centos7最小化安装