问题描述:

组委会正在为美团点评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的更多相关文章

  1. CodeM Qualifying Match Q5

    问题描述: 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来. 对于每个写下来的数,只保留最高位的那个数码.求1-9每个数码出现 ...

  2. CodeM Qualifying Match Q1

    问题描述: 具体地说,就是在第二段音频中找到一个长度和第一段音频相等且是连续的子序列,使得它们的 difference 最小.两段等长音频的 difference 定义为: difference = ...

  3. vlookup+match高亮显示行

    VLOOPUP =VLOOKUP("*"&O3,$A$2:$B$38,2,0) 第一个参数查找值,第二个参数查找范围,第三个参数返回第几列的值,第四个参数匹配方式(“,”, ...

  4. nyoj 58-最少步数 (BFS)

    58-最少步数 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:17 submit:22 题目描述: 这有一个迷宫,有0~8行和0~8列: 1,1,1 ...

  5. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  6. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  7. Java compiler level does not match解决方法

    从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level d ...

  8. 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match

    今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...

  9. .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)

    正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...

随机推荐

  1. ethereum/EIPs-170 Contract code size limit

    eip title author type category status created 170 Contract code size limit Vitalik Buterin Standards ...

  2. Java并发(一)并发编程的挑战

    目录 一.上下文切换 1. 多线程一定快吗 2. 测试上下文切换次数和时长 3. 如何减少上下文切换 4. 减少上下文切换实战 二.死锁 三.资源限制的挑战 四.本章小结 并发编程的目的是为了让程序运 ...

  3. keepalived 做全端口映射

    global_defs {    lvs_id BACKUP }   vrrp_sync_group VGM {     group {        VI_1     } }   vrrp_inst ...

  4. Fiddler-http检测调试工具

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大 ...

  5. PHP设计模式——訪问者模式

    声明:本系列博客參考资料<大话设计模式>,作者程杰. 訪问者模式表示一个作用于某对象结构中的各元素的操作. 它使你能够在不改变各元素类的前提下定义作用于这些元素的新操作. UML类图: w ...

  6. 关于EL表达式中requestScope和param区别

    今天演示EL表达式的时候发现自己jsp的基础实在是薄弱,在这个很简单的问题上迷惑了很久. 首先在看遇到的问题: 在浏览器地址输入,表示传入一个参数test,值为123 http://localhost ...

  7. 基于Azure的软件部署和开发系列沙龙

    活动简介: Azure是一种灵活和支持互操作的平台,它可以被用来创建云中运行的应用或者通过基于云的特性来加强现有应用.它开放式的架构给开发者提供了Web应用.互联设备的应用.个人电脑.服务器.或者提供 ...

  8. UWP ListView 绑定 单击 选中项 颜色

    refer: https://www.cnblogs.com/lonelyxmas/p/7650259.html using System; using System.Collections.Gene ...

  9. linux下通过软连接实现访问项目路径外面的资源

            在javaweb项目开发中,图片上传是个比较常见的场景.一般都是在项目路径下建个文件夹,然后上传到该文件夹下:这样这个图片就可以和静态资源一样被直接访问.这样的好处就是访问这图片特别方 ...

  10. 纯 CSS 利用 label + input 实现选项卡

    clip 属性 用于剪裁绝对定位元素. .class { position:absolute; clip:rect(0px,60px,200px,0px); } scroll-behavior: sm ...