原题 >问题描述  小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。

小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。

现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。

小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?输入格式  第一行包含两个个整数N和K。

第二行包含N个整数A1, A2, ... AN。

对于30%的数据,1 <= N <= 10

对于100%的数据,1 <= N <= 100000, 0 <= Ai <= 100000, 0 <= K <= 100000输出格式  一个整数,代表答案。样例输入10 0

1 4 2 8 5 7 1 4 2 8样例输出6

动态规划解题,先将数据分组,彼此相差K的数据为一组,这样组与组之间的数据不会受到影响,

只要从每组中选择出最大在线人数,累加起来即可。

每个数据只能有选择与不选择两种可能,设dp[i-1]存储前i-1个数据(包括第i-1个数据)中能选择的最大人数,则选择

第i个数据后dp[i]=dp[i-2]+value[i],不选择dp[i]=dp[i-1](因为不选择你只能继承),所以得出状态转移方程:

dp[i]=max[dp[i-2]+value[i],dp[i-1]);

K=0时特别处理!

Java AC1 import java.util.*; 2 3 public class Main { 4 5 static int N; 6 static int K; 7 8 public static void main(String[] args) { 9 Scanner reader=new Scanner(System.in); 10 N=reader.nextInt();11 K=reader.nextInt();12 int result=0;13 int score[]=new int[100005];14 int dp[]=new int[100005];15 int max=0;16 for(int i=0;imax) {19 max=temp;20 }21 score[temp]++;22 }23 if(K==0) {24 for(int i=0;i<=max;i++) {25 if(score[i]!=0) {26 result++;27 }28 }29 System.out.println(result);30 return;31 }32 int value[]=new int[100005];33 for(int i=0;ivalue[1]?dp[0]:value[1];42 for(int z=2;z

15:53:41

2018-08-26 本文网址:http://www.shaoqun.com/a/383097.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

java对配_[Java教程]对局匹配相关推荐

  1. java 正则 单个字符_正则表达式教程之匹配单个字符详解

    本文实例讲述了正则表达式教程之匹配单个字符.分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的[和]之间,有的例子会使用Java来实现,如果是java本身正则表达式的 ...

  2. java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)

    [Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...

  3. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

  4. java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)

    作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...

  5. java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  6. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩

    import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...

  7. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

    笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...

  8. java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  9. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

最新文章

  1. linux检查文件一致性,3.20 fsck(检查并修复Linux 文件系统)
  2. G代码运行模拟软件-NC Viewer
  3. Android项目导出jar包的小技巧
  4. Alteral Max 10 FPGA 优点
  5. SAP Spartacus全局配置模块里和layoutSlot相关的配置
  6. python与h5结合实例_使用h5py合并所有h5文件
  7. vb 解析ini文件_PHP文件及运行(适合PHP初学者)
  8. 在论坛中出现的比较难的sql问题:14(存储过程问题)
  9. ExtJS ComboBox同时加载远程和本地数据
  10. Raspbian 2019-06-20 发布
  11. Python之温度换算
  12. 第一天:英语四级听力训练
  13. 信号隔离器直流电流电压变送器 分配转换模块0-10V一进二出4-20mA
  14. 有谁知道iphone XR的“R”到底是什么意思?答案可能会让你们无奈
  15. [ZCMU OJ]1633: 酷酷的单词(遍历)
  16. 振弦式渗压计渗流孔隙水压立计应用地基内部渗透水压力
  17. 声学——声源定位阅读笔记
  18. js正则表达式-前瞻
  19. Archlinux:安装Nvidia闭源驱动的艰难日子
  20. 三面阿里失败,幸获阿里P8大牛指点,奋战三个月30*14薪入职字节

热门文章

  1. linux基础培训下载,huimaiLinux系统基础培训.ppt
  2. 从霸笔、霸一面到成功走进腾讯
  3. JavaScript伪数组和数组
  4. <!DOCTYPE html>作用
  5. Scaling Hyperledger Fabric Using Pipelined Execution and Sparse Peers(提升fabric 6倍性能的文章翻译)
  6. C# Winform软件多语言(汉语、英语。。。)界面的切换,低耦合 - 转
  7. 简单易学的五款英伦风格鸡尾酒PartyOK版
  8. CSS中fixed和absolute区别
  9. 线代第三章 向量(线性表出、线性相关)
  10. 【读论文】A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time...