CodeM Qualifying Match Q2
问题描述:
组委会正在为美团点评CodeM大赛的决赛设计新赛制。
比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛、复赛的成绩,会有不同的积分。
比赛采取锦标赛赛制,分轮次进行,设某一轮有 m 个人参加,那么参赛者会被分为 m/2 组,每组恰好 2 人,m/2 组的人分别厮杀。
我们假定积分高的人肯定获胜,若积分一样,则随机产生获胜者。获胜者获得参加下一轮的资格,输的人被淘汰。
重复这个过程,直至决出冠军。
现在请问,参赛者小美最多可以活到第几轮(初始为第0轮)?输入描述:
第一行一个整数 n (1≤n≤ 2^20),表示参加比赛的总人数。
接下来 n 个数字(数字范围:-1000000…1000000),表示每个参赛者的积分。
小美是第一个参赛者。输出描述:
小美最多参赛的轮次。输入例子:
4
4 1 2 3输出例子:
2
完整判断版,但仅有case10%通过
import java.util.Scanner; public class Main_2
{
public static void main(String arg[])
{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int points[] = new int[num];
for(int i=0;i<num;i++)
{
points[i]=sc.nextInt();
}
double turn=num/2;
double random=0;
int xm_win=0;
label:
while(turn>=1)
{
int win=0;
for(int k=0;k<(turn*2);k +=2)
{
random= Math.random();
if((k==0 && points[0]<points[1]) || (k==0 && points[0]==points[1] && random>0.5))
{
break label;
}
if (points[k]<points[k+1])
{
points[win]=points[k+1];
}
else if (points[k]>=points[k+1])
{
points[win]=points[k];
}
else //(points[k] == points[k+1])
{
if(random>0.5) //random大于0.5后者赢
{
points[win]=points[k+1];
}
else //random小于0.5前者赢
{
points[win]=points[k];
}
}
System.out.println("point" + win +" "+ points[win] +" "+ "random:" + random);
win++;
}
System.out.println();
xm_win++;
turn =turn/2;
}
System.out.println(xm_win); //要求输出点
System.out.println(num + " " + turn + " " + random);
}
}
偷工减料判断版,但仅有case10%通过
import java.util.Scanner; public class Main
{
public static void main(String arg[])
{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int points[] = new int[num];
for(int i=0;i<num;i++)
{
points[i]=sc.nextInt();
}
double turn=num/2;
double random=0;
int xm_win=0;
label:
while(turn>=1)
{
int win=0;
for(int k=0;k<(turn*2);k +=2)
{
random= Math.random();
if((k==0 && points[0]<points[1]) || (k==0 && points[0]==points[1] && random>0.5))
{
break label;
}
if (points[k]<points[k+1])
{
points[win]=points[k+1];
}
else
{
points[win]=points[k];
}
System.out.println("point" + win +" "+ points[win] +" "+ "random:" + random);
win++;
}
System.out.println();
xm_win++;
turn =turn/2;
}
System.out.println(xm_win); //要求输出点
System.out.println(num + " " + turn + " " + random);
}
}
CodeM Qualifying Match Q2的更多相关文章
- CodeM Qualifying Match Q5
问题描述: 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来. 对于每个写下来的数,只保留最高位的那个数码.求1-9每个数码出现 ...
- CodeM Qualifying Match Q1
问题描述: 具体地说,就是在第二段音频中找到一个长度和第一段音频相等且是连续的子序列,使得它们的 difference 最小.两段等长音频的 difference 定义为: difference = ...
- vlookup+match高亮显示行
VLOOPUP =VLOOKUP("*"&O3,$A$2:$B$38,2,0) 第一个参数查找值,第二个参数查找范围,第三个参数返回第几列的值,第四个参数匹配方式(“,”, ...
- nyoj 58-最少步数 (BFS)
58-最少步数 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:17 submit:22 题目描述: 这有一个迷宫,有0~8行和0~8列: 1,1,1 ...
- Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...
- Java compiler level does not match解决方法
从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description Resource Path Location Type Java compiler level d ...
- 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match
今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...
- .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)
正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...
随机推荐
- 6、JVM--类文件结构(下)
6.4 字节码指令简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成.由 ...
- MetaMask/Website
https://github.com/MetaMask/Website 将这个包下载下来之后运行npm install出现下面的问题 gyp: No Xcode or CLT version dete ...
- 记一次MyBatis的错误
错误信息:java.lang.StackOverflowError 关于这个错误的深度解析,大家可以参考这篇博文,比较详细:https://blog.csdn.net/zc375039901/arti ...
- [转]Custom Controls in Visual C# .NET-如何实现自定义控件
A very simple introduction to writing your first .NET control Download source files - 1 Kb Introduct ...
- Python2.7-NumPy
NumPy 提供了两种基本对象ndarray(N-dimensional array object)和 ufunc(universal function object)ndarray(下文统一称之为数 ...
- 清北学堂寒假集训DAY1
第一天,上午讲了些基本的技巧和简单算法,主要就是适应这里. 中午跑到食堂吃了顿“饭”(我并没有挖苦233333),然后回宿舍休息休息 因为 迎接我们的是模拟啊啊啊啊啊阿 下午题一发下来,并没有想象中的 ...
- 将jar文件加到Maven的local repository中
对于Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那 ...
- # 2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描
2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.O ...
- C++之enum枚举量声明、定义、使用与枚举类详解
C++之enum枚举量声明.定义.使用与枚举类详解 学习一个东西,首先应该指导它能做什么,其次去知道它怎么去做,最后知道为什么去这么做. 知其然知其所以然.不能冒进 ,一步一步的慢慢来.
- WPF的Style的TargetType不同写法的异同
原文:WPF的Style的TargetType不同写法的异同 <Style TargetType="TextBlock"> <Setter Property=&q ...