蓝桥杯---试题 历届试题 对局匹配
资源限制
时间限制: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;
}
蓝桥杯---试题 历届试题 对局匹配相关推荐
- 【蓝桥杯】历届试题 对局匹配(C++)
[蓝桥杯]历届试题 对局匹配(C++) 问题描述 解题思路 具体代码 问题描述 题目链接:对局匹配. 资源限制: 时间限制:1.0s 内存限制:256.0MB 问题描述: 小明喜欢在一个围棋网站上找别 ...
- java 核桃的数量,[Java教程]【蓝桥杯】历届试题 核桃的数量
[Java教程][蓝桥杯]历届试题 核桃的数量 0 2016-03-31 23:33:50 历届试题 核桃的数量 时间限制:1.0s 内存限制:256.0MB问题描述 小张是软件项目经理,他带领3 ...
- 【蓝桥杯】历届试题 数字游戏(C++)
[蓝桥杯]历届试题 数字游戏(C++) 问题描述 解题思路 具体代码 问题描述 题目链接:数字游戏. 问题描述: 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈 ...
- 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)(C++)
[蓝桥杯]历届试题 青蛙跳杯子 问题描述 思路分析 代码实现 问题描述 题目链接:青蛙跳杯子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 X星球的流行宠物是青蛙,一般有两种颜色: ...
- 蓝桥杯PREV-1 历届试题 核桃的数量
蓝桥杯PREV-1 历届试题 核桃的数量 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 1. 各 ...
- 【蓝桥杯】历届试题 对局匹配(贪心)
历届试题 对局匹配 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配 ...
- 蓝桥杯 java 历届试题 对局匹配
历届试题 对局匹配 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动 ...
- 【蓝桥杯】 历届试题 合根植物(并查集)
历届试题 合根植物 问题描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列).每个格子里种了一株合根植物. 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与 ...
- 【蓝桥杯】历届试题 矩阵翻硬币
历届试题 矩阵翻硬币 ----------------------------------------------------痞子小小崔 时间限制:1.0s 内存限制:256.0MB 问题描述 小明先 ...
- 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)
历届试题 青蛙跳杯子 问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯 ...
最新文章
- 用php计算自由落体,js模仿物理中的自由落体现象
- [转载]C# PropertyGrid控件应用心得
- import导入工程时出现error:Description	Resource	Path	Location	Type Target runtime com.genuitec.runtime.gener
- 监管大屏系统_餐饮公示大屏广告位招商正式启动!
- Spring Boot 入门之缓存和 NoSQL 篇(四)
- 使用yum安装CDH Hadoop集群
- 漫步微积分二十七——曲线下的面积 定积分 黎曼
- 什么是ZooKeeper
- 我总结的 jsonp
- QGIS数据分析入门——Qgis下载及界面介绍(一)
- ArcGIS Pro地理配准
- PS制作透明图片png格式
- 如何在项目工程建筑中使用二维码?
- 30岁前如何规划自己的人生?这9本书告诉你
- 耐摔 8寸 android,屏幕耐摔的手机有哪些?6款屏幕耐摔的手机推荐
- linux 隔行添加字符,EXCEL 隔行插入空白行、批量添加字符 等技巧备份
- Java 将txt文本文档转换为excel
- linux环境下查看ibm mq mb日志
- PoweShell Win_desktop install wsl
- npm包管理工具的安装及配置使用
热门文章
- vue组件通信 - 父向子传、子向父传 (详细步骤)
- STC单片机启动看门狗定时器介绍和使用
- rs232接口_香蕉派BPI-F2P工业级开发板, 支持PoE,一路RS232,一路RS584接口
- 创龙基于TI AM335x ARM Cortex-A8 CPU,主频高达1GHz开发板规格书,用于电力控制
- php封装协议查看zip,支持的协议和封装协议
- ChainNode测评:WOOKONG BioSolo硬件钱包 全体验
- 《网上苏州》电子地图建设方案
- 汉王OCR接口调用——python
- 组装电脑基础知识之电源
- paper 129 : 比较好的开源人脸识别软件