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

小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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

思路:
分段dp,分为K组,每组分别dp,每组计算结果(最优结果)再累加到ans中

dp[i+k*(i-1)]和dp[i+k * i]和dp[i+k * (i+1)]相邻的不能同时选,
核心代码:

 dp[0]=cnt[0];for(int j=1;j<y;j++){if(j==1)dp[j]=max(dp[j-1],cnt[j]);else dp[j]=max(dp[j-1],dp[j-2]+cnt[j]);}ans+=dp[y-1];

code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[100001];//a中存放各个积分的人数情况
int dp[100001];//dp存放每组的最优解
int cnt[100001];//存放差距为k的一组的所有人数情况int main(){int n,k,maxv=0;cin>>n>>k;int num;for(int i=0;i<n;i++){cin>>num;a[num]++;maxv=max(maxv,num);}   ll ans=0;if(k==0){//如果k为0,则一共有多少种积分情况即为ansfor(int i=0;i<=maxv;i++){if(a[i])ans++;}cout<<ans;return 0;}else{//k不为0时for(int i=0;i<k;i++){int y=0;for(int j=i;j<=maxv;j+=k){cnt[y++]=a[j];}dp[0]=cnt[0];for(int j=1;j<y;j++){if(j==1)dp[j]=max(dp[j-1],cnt[j]);else dp[j]=max(dp[j-1],dp[j-2]+cnt[j]);}ans+=dp[y-1];}}cout<<ans;return 0;
}

蓝桥杯---试题 历届试题 对局匹配相关推荐

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

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

  2. java 核桃的数量,[Java教程]【蓝桥杯】历届试题 核桃的数量

    [Java教程][蓝桥杯]历届试题 核桃的数量 0 2016-03-31 23:33:50 历届试题 核桃的数量 时间限制:1.0s   内存限制:256.0MB问题描述 小张是软件项目经理,他带领3 ...

  3. 【蓝桥杯】历届试题 数字游戏(C++)

    [蓝桥杯]历届试题 数字游戏(C++) 问题描述 解题思路 具体代码 问题描述 题目链接:数字游戏. 问题描述: 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈 ...

  4. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)(C++)

    [蓝桥杯]历届试题 青蛙跳杯子 问题描述 思路分析 代码实现 问题描述 题目链接:青蛙跳杯子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 X星球的流行宠物是青蛙,一般有两种颜色: ...

  5. 蓝桥杯PREV-1 历届试题 核桃的数量

    蓝桥杯PREV-1 历届试题 核桃的数量 问题描述   小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是:   1. 各 ...

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

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

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

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

  8. 【蓝桥杯】 历届试题 合根植物(并查集)

    历届试题 合根植物 问题描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列).每个格子里种了一株合根植物. 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与 ...

  9. 【蓝桥杯】历届试题 矩阵翻硬币

    历届试题 矩阵翻硬币 ----------------------------------------------------痞子小小崔 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先 ...

  10. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)

    历届试题 青蛙跳杯子 问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯 ...

最新文章

  1. 用php计算自由落体,js模仿物理中的自由落体现象
  2. [转载]C# PropertyGrid控件应用心得
  3. import导入工程时出现error:Description Resource Path Location Type Target runtime com.genuitec.runtime.gener
  4. 监管大屏系统_餐饮公示大屏广告位招商正式启动!
  5. Spring Boot 入门之缓存和 NoSQL 篇(四)
  6. 使用yum安装CDH Hadoop集群
  7. 漫步微积分二十七——曲线下的面积 定积分 黎曼
  8. 什么是ZooKeeper
  9. 我总结的 jsonp
  10. QGIS数据分析入门——Qgis下载及界面介绍(一)
  11. ArcGIS Pro地理配准
  12. PS制作透明图片png格式
  13. 如何在项目工程建筑中使用二维码?
  14. 30岁前如何规划自己的人生?这9本书告诉你
  15. 耐摔 8寸 android,屏幕耐摔的手机有哪些?6款屏幕耐摔的手机推荐
  16. linux 隔行添加字符,EXCEL 隔行插入空白行、批量添加字符 等技巧备份
  17. Java 将txt文本文档转换为excel
  18. linux环境下查看ibm mq mb日志
  19. PoweShell Win_desktop install wsl
  20. npm包管理工具的安装及配置使用

热门文章

  1. vue组件通信 - 父向子传、子向父传 (详细步骤)
  2. STC单片机启动看门狗定时器介绍和使用
  3. rs232接口_香蕉派BPI-F2P工业级开发板, 支持PoE,一路RS232,一路RS584接口
  4. 创龙基于TI AM335x ARM Cortex-A8 CPU,主频高达1GHz开发板规格书,用于电力控制
  5. php封装协议查看zip,支持的协议和封装协议
  6. ChainNode测评:WOOKONG BioSolo硬件钱包 全体验
  7. 《网上苏州》电子地图建设方案
  8. 汉王OCR接口调用——python
  9. 组装电脑基础知识之电源
  10. paper 129 : 比较好的开源人脸识别软件