题目 1842: 对局匹配
题目
小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。
小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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: 对局匹配相关推荐
- 【蓝桥杯】历届试题 对局匹配(C++)
[蓝桥杯]历届试题 对局匹配(C++) 问题描述 解题思路 具体代码 问题描述 题目链接:对局匹配. 资源限制: 时间限制:1.0s 内存限制:256.0MB 问题描述: 小明喜欢在一个围棋网站上找别 ...
- 蓝桥杯第四日——对局匹配
问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...
- 蓝桥杯国赛 对局匹配(DP)
蓝桥杯国赛 对局匹配(DP) 题目描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K ...
- 2017蓝桥杯 对局匹配(贪心)
历届试题 对局匹配 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在 ...
- #每日一题 对局匹配(dp)
试题 历届试题 对局匹配 资源限制 时间限制:1.0s 内存限制:256.0MB $Daily English 孩子害怕黑暗,情有可原:人生真正的悲剧,是成人害怕光明. We can easily f ...
- [蓝桥杯][历届试题 PREV-50]对局匹配(Java)(动态规划)
历届试题 对局匹配 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系 ...
- 【蓝桥杯】历届试题 对局匹配(贪心)
历届试题 对局匹配 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配 ...
- 蓝桥杯 java 历届试题 对局匹配
历届试题 对局匹配 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动 ...
- 题目1072 括号匹配问题
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 题目描述 ...
- 历届试题 对局匹配-动态规划
问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...
最新文章
- 想要学好Go语言的必须知道的一个小技巧
- c语言 json 请求_怎么用C语言获取JSON中的数据?
- java map to map 拷贝_java复制Map 对象(深拷贝和浅拷贝)
- 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...
- 如何用python画数据图-python怎么对动态数据在同一张图上画出来
- 实验——Windows常用网络测试命令
- mybatis:在springboot中的配置
- JavaScript之面向对象与原型笔记整理--------创建对象之原型(2)
- vmware 虚拟机中有时获取不到IP地址
- 周报_2011第40周(2011/09/25-2011/10/01)
- 东芝如何看待蓝牙在物联网热潮下的机遇
- 软件开发合同模板范本
- ISO 27001:2022 中文试译稿
- python 和vba在财务上_Excel函数和VBA技术在财务工作中的应用
- 什么是发动机号,发动机号码是什么?
- 谷歌浏览器提示您的连接不是私密连接怎么办
- 异步传输模式 Asynchronous Transfer Mode
- KMSpico无法安装问题解决
- winxp/win7开机密码忘记有妙招
- 【转载】《天下粮仓》
热门文章
- python 克里金空间插值_C#教程之空间插值——克里金插值
- python趋势跟踪_一个趋势跟踪系统—Dual Thrust策略(期货)
- 学生信息管理系统(一)——登录窗体
- DSP2812入门2——结构资源性能
- 2014年上半年计算机试题,2014年上半年程序员考试上午试题及答案
- java查询城市区号_中国城市电话区号对照表
- 国科大.模式识别与机器学习.期末复习笔记手稿+复习大纲
- 11款企业网络运维监控软件汇总介绍-行云管家
- Avalondock 第四步 边缘停靠
- 海王星 :谈中国共享软件的发展