题目描述:

在一场比赛中,共有N名用户,他们的积分分别是A1, A2, ... AN。

系统在匹配比赛时,只会将积分差恰好是K的用户配在一起。

请问,最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?


代码:

已知:

比赛总用户数量K

他们各自的比赛积分A1、A2、A3......

系统匹配对手的积分差K

输入:

第一行 N K

第二行 N个整数(N个人分别的积分)

package easy;import java.util.Arrays;
import java.util.Scanner;public class Number_n {static int max_count = 100010;public static void main(String[] args) {Scanner input = new Scanner(System.in);int N = input.nextInt();    //用户总人数int K = input.nextInt();    //固定的积分差值int[] dp = new int[max_count+1];     //dp[i]表示,在当前分组中,前i个人里面,最多满足要求的人数int[] count = new int[max_count+1];     //count[i]表示,分数为i的人数int[] value = new int[max_count+1];        //value[i]表示,在当前分组中,按顺序排的数字,第i个数字出现的次数int[] score = new int[N];int result1 = 0;int result2 = 0;for(int i = 0;i < N;i++){score[i] = input.nextInt();count[score[i]]++;}for(int number = 0;number < max_count;number++){if(count[number]!=0)result1++;}if(K==0){System.out.println(result1);}else{for(int i = 0;i < K;i++){     //分成k组int m = 0;for(int j = i;j <= max_count;j=j+K)value[m++] = count[j];dp[0] = value[0];for(int p = 1;p < m;p++){       //循环结束时p==mif(p==1)dp[1] = Math.max(value[0], value[1]);elsedp[p] = Math.max(dp[p-1], dp[p-2]+value[p]);}result2 = result2+dp[m-1];}System.out.println(result2);}input.close();}}

解题思路:

提示:这里填写问题的分析:
例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


解决方案:

提示:这里填写该问题的具体解决方案:
例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sendMessage()。

Java蓝桥杯——比赛对局匹配相关推荐

  1. 蓝桥杯比赛java试题及答案,2011蓝桥杯高职java试题及部分参考答案

    <2011蓝桥杯高职java试题及部分参考答案>由会员分享,可在线阅读,更多相关<2011蓝桥杯高职java试题及部分参考答案(14页珍藏版)>请在人人文库网上搜索. 1.20 ...

  2. 蓝桥杯比赛培训笔记(基于STCCT107D训练板)

    "蓝桥杯"比赛培训笔记 更新说明 第一次大更新:删除了一部分冗余的代码,将代码部分改得更为规范了些. --2020年2月23日 第二次更新:在C语言相关中增添了"数组&q ...

  3. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  4. java蓝桥杯练习 学做菜

    java蓝桥杯练习 学做菜 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 涛涛立志要做新好青年,他最近在学做菜.由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜, ...

  5. java蓝桥杯练习 蜜蜂飞舞

    java蓝桥杯练习 蜜蜂飞舞 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 "两只小蜜蜂呀,飞在花丛中呀--" 话说这天天上飞舞着两只蜜蜂,它们在跳一种奇怪的舞 ...

  6. Java 蓝桥杯 我们的征途是星辰大海

    Java 蓝桥杯 我们的征途是星辰大海 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代 ...

  7. JAVA 蓝桥杯 算法提高 阮小二买彩票

    JAVA 蓝桥杯 算法提高 阮小二买彩票 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电 ...

  8. java蓝桥杯练习 拉马车

    java蓝桥杯练习 拉马车 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. ...

  9. java蓝桥杯练习 幸运数

    java蓝桥杯练习 幸运数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成. 首先从1开始写出 ...

最新文章

  1. pandas drop 删除行和列的方法
  2. leetcode - Populating Next Right Pointers in Each Node II
  3. 今晚直播 | 清华大学NLP组刘正皓:神经信息检索的进展与挑战
  4. C语言文件操作(四)将txt格式汉字转化为txt格式16进制编码
  5. 郭明錤:苹果将在明年第二季度推出增强现实头盔
  6. PowerShell 学习笔记 - 2 PS Module
  7. 剑指offer(C++)-JZ23:链表中环的入口结点(数据结构-链表)
  8. raspberry pi2 智能小车源码及测试视频
  9. 【C语言】计算器实现
  10. 如何在手机上安装linux系统并可视化界面
  11. 异步社区本周新上电子书
  12. 宇枫资本理财中要避免这些
  13. 操作系统 第七章 文件管理
  14. mysql中查看密码有效期_Mysql5.7.9密码已过有效期的处理过程
  15. 数据集成之数据整合(Data Consolidation)
  16. 磁盘分区命令fdisk、parted和gdisk
  17. 弱加密算法有哪几种_常见的几种加密方法
  18. 【数据结构与算法】详解什么是栈,并用代码手动实现一个栈结构
  19. Android打开应用市场
  20. http状态码查询表(转载)

热门文章

  1. 网络安全应急演练学习笔记第一篇之总则、分类及方法、组织机构
  2. 一种排序--引发:java两个引用指向同一个对象
  3. 服务器判断是手机访问网址还是电脑访问网址
  4. 苹果手机app连不上服务器无响应,iPhone手机软件卡死无响应或无法退出怎么办
  5. Deeplabv3+ Pytorch训练cityscapes数据集
  6. 【从0开始C语言(自学记录)】system函数
  7. 傲梅迁移系统后 休眠=关机问题解决(更换硬盘)
  8. 共享链基于区块链技术的共赢社区
  9. 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(4)for == while ?
  10. 新道格资讯 我司携手清华大学老师入选“江阴-清华创新引领行动计划