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 ...
随机推荐
- 【转】Android实战技巧之四十九:Usb通信之USB Host
零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头 ...
- 备份时如何排除掉默认的 information_schema 和 mysql 库?
备份时如何排除掉默认的 information_schema 和 mysql 库? mysql -e "show databases;" -uroot -ppassword | g ...
- MVC bundle的使用总结
在我们的项目里面充斥着很多静态文件,为了追求模块化.插件化很多静态文件都被设计成模块的方式或者被分解,在需要的时候在通过组合的方式在UI层上使用:这就带来一个问题,文件多了会影响浏览器加载页面的速度, ...
- webSphere-Eclipse中配置was的远程调试
目前我们项目中使用的应用服务器多是WebSphere,一直苦于无法进行调试,今天在网上看到一篇,原文是 http://www.cnblogs.com/newstar/archive/2010/04/1 ...
- action类型的按钮和object按钮的用法
<div class="oe_right oe_button_box" name="buttons"> <button class=" ...
- SEO优化上首页之搜索引擎排名规则
搜索引擎建立索引的网页数以万亿计,用户搜索的关键词也是海量,如果每个用户提交搜索请求后,搜索引擎都去数以万亿的索引中重新排名网页,效率将非常低下.根据2-8法则,80%是查询是集中在相同的20%内容上 ...
- R语言的数据输入
既然了解了R语言的基本数据类型,那么如何将庞大的数据送入R语言进行处理呢?送入的数据又是如何在R语言中进行存储的呢?处理这些数据的方法又有那些呢?下面我们一起来探讨一下. 首先,数据输入最直接最直观的 ...
- android获取内置和外置SD卡路径 - z
本文将介绍Android真机环境下如何获取内置和外置SD卡路径. 测试环境:三星Note3,其他手机待测试... 所需权限(AndroidManifest.xml文件里) <uses-permi ...
- Android应用安全之脆弱的加密
程序员希望通过加密来提升程序的安全性性,但却缺乏专业的密码学背景知识,使得应用对数据的保护非常薄弱.本文将介绍可能出现在Android应用中的一些脆弱的加密方式,以及对应的攻击方法. 造成脆弱加密的主 ...
- ptrace注入型病毒“聊天剽窃手”分析
概述 “聊天剽窃手”Windseeker是一款间谍软件,它使用了ptrace进程注入技术,能够对微信和QQ的聊天记录进行监控. 软件安装后的桌面图标和启动界面如图所示: 行为分析 该应用首先获取手 ...