题目

小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。
小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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不为0时,从首项为0,1,2.,…,(K-1),公差为K的共K个等比数列中,至少间隔2*K取任意个积分,使得处在这些积分的玩家人数和最大

因此,首先可以应用hash散列的思想,构建一维int类型数组,其下标代表积分,存储的值代表该积分对应的玩家人数;之后,遍历每一个等差数列,对每一个等差数列进行深度优先搜索,在搜索过程中,如果遇到玩家人数为0的积分,则舍去不取;每取一个积分,就统计人数和,若大于当前最大值,则替换最大值,直到取到数组的末尾(判断依据是是否大于Ai的可能最大值100000)。

代码

#include<stdio.h>
int marks[100001],max;
int DFS(int a, int K, int sum){int i;for (i=a;i<100001;i+=K){if (marks[i]==0)//不为0再选continue;max = (sum+marks[i])>max?(sum+marks[i]):max;DFS(i+2*K,K,sum+marks[i]);}return max;
}int main()
{int N,K,i,j,temp;//N是玩家数目,K是匹配差int num = 0;scanf("%d %d",&N,&K);for (i=0;i<N;i++){scanf("%d",&temp);if (K==0)marks[temp] = 1;elsemarks[temp]++;}if (K==0)for (i=0;i<100001;i++)num+=marks[i];else{for (i=0;i<K;i++){max = 0;num+=DFS(i,K,0);}}printf("%d",num);return 0;
}

题目 1842: 对局匹配相关推荐

  1. 【蓝桥杯】历届试题 对局匹配(C++)

    [蓝桥杯]历届试题 对局匹配(C++) 问题描述 解题思路 具体代码 问题描述 题目链接:对局匹配. 资源限制: 时间限制:1.0s 内存限制:256.0MB 问题描述: 小明喜欢在一个围棋网站上找别 ...

  2. 蓝桥杯第四日——对局匹配

    问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...

  3. 蓝桥杯国赛 对局匹配(DP)

    蓝桥杯国赛 对局匹配(DP) 题目描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K ...

  4. 2017蓝桥杯 对局匹配(贪心)

    历届试题 对局匹配 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在 ...

  5. #每日一题 对局匹配(dp)

    试题 历届试题 对局匹配 资源限制 时间限制:1.0s 内存限制:256.0MB $Daily English 孩子害怕黑暗,情有可原:人生真正的悲剧,是成人害怕光明. We can easily f ...

  6. [蓝桥杯][历届试题 PREV-50]对局匹配(Java)(动态规划)

    历届试题 对局匹配 时间限制:1.0s   内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系 ...

  7. 【蓝桥杯】历届试题 对局匹配(贪心)

    历届试题 对局匹配 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配 ...

  8. 蓝桥杯 java 历届试题 对局匹配

    历届试题 对局匹配 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动 ...

  9. 题目1072 括号匹配问题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 题目描述 ...

  10. 历届试题 对局匹配-动态规划

    问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...

最新文章

  1. 想要学好Go语言的必须知道的一个小技巧
  2. c语言 json 请求_怎么用C语言获取JSON中的数据?
  3. java map to map 拷贝_java复制Map 对象(深拷贝和浅拷贝)
  4. 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...
  5. 如何用python画数据图-python怎么对动态数据在同一张图上画出来
  6. 实验——Windows常用网络测试命令
  7. mybatis:在springboot中的配置
  8. JavaScript之面向对象与原型笔记整理--------创建对象之原型(2)
  9. vmware 虚拟机中有时获取不到IP地址
  10. 周报_2011第40周(2011/09/25-2011/10/01)
  11. 东芝如何看待蓝牙在物联网热潮下的机遇
  12. 软件开发合同模板范本
  13. ISO 27001:2022 中文试译稿
  14. python 和vba在财务上_Excel函数和VBA技术在财务工作中的应用
  15. 什么是发动机号,发动机号码是什么?
  16. 谷歌浏览器提示您的连接不是私密连接怎么办
  17. 异步传输模式 Asynchronous Transfer Mode
  18. KMSpico无法安装问题解决
  19. winxp/win7开机密码忘记有妙招
  20. 【转载】《天下粮仓》

热门文章

  1. python 克里金空间插值_C#教程之空间插值——克里金插值
  2. python趋势跟踪_一个趋势跟踪系统—Dual Thrust策略(期货)
  3. 学生信息管理系统(一)——登录窗体
  4. DSP2812入门2——结构资源性能
  5. 2014年上半年计算机试题,2014年上半年程序员考试上午试题及答案
  6. java查询城市区号_中国城市电话区号对照表
  7. 国科大.模式识别与机器学习.期末复习笔记手稿+复习大纲
  8. 11款企业网络运维监控软件汇总介绍-行云管家
  9. Avalondock 第四步 边缘停靠
  10. 海王星 :谈中国共享软件的发展