题干:

问题描述

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

  小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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份(代表模k下的不同值),这样每一份之间互不影响。我们分开求解。

其实最先想到的是建k棵树,然后就是上下级间不能全选的树形dp的问题了,对于每个节点,权值就是该数出现的个数,但是注意到这题每个节点只会有一个孩子(除了最后一个元素)和一个父亲(除了第一个元素),所以其实是组成了一条链,这就好做多了,没出现过就代表权值为0呗,反正就,不影响算法的设计。

注意k==0的时候要特判一下就行了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 2e5 + 5;
int bk[MAX],maxx;
int a[MAX];
int dp[MAX][2];
int n,k;
int deal(int bei) {vector<int> vv;vv.pb(0);int res = 0;for(int i = bei; i<=maxx; i+=k) {vv.pb(bk[i]);}int up = vv.size() - 1;for(int i = 1; i<=up; i++) {dp[i][0] = max(dp[i-1][0],dp[i-1][1]);dp[i][1] = dp[i-1][0] + vv[i];}return max(dp[up][0],dp[up][1]);
}
int main()
{cin>>n>>k;for(int i = 1; i<=n; i++) {scanf("%d",a+i);maxx = max(maxx,a[i]);bk[a[i]]++;}sort(a+1,a+n+1);if(k == 0) {printf("%d\n",unique(a+1,a+n+1) - a - 1);return 0 ;}ll ans = 0;for(int i = 0; i<k; i++) {ans += 1LL * deal(i);}printf("%lld\n",ans);return 0 ;
}
/*
5 3
1 4 7 2 4
*/

【蓝桥杯官网训练 - 历届试题】对局匹配(dp,思维,取模)相关推荐

  1. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  2. 蓝桥杯官网 试题 PREV-240 历届真题 答疑【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  3. 蓝桥杯官网 试题 PREV-109 历届真题 扫地机器人【第十届】【省赛】【研究生组】【C++】【Java】【Python】三种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  4. 蓝桥杯官网 试题 PREV-265 历届真题 砝码称重【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

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

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

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

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

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

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

  8. 蓝桥杯官网刷题记录python

    蓝桥杯官网刷题记录python 由于很多题都会在2020.2021.2022年省赛出现,有的在前面文章里做过的这里就不会再说了 一.空间 小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都 ...

  9. Python程序设计题解【蓝桥杯官网题库】 DAY13-算法训练

    试题 算法训练 K好数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K ...

最新文章

  1. 函数assert()详解
  2. iview 表单 验证_iview必备技能一、表单验证规则
  3. Git系列之(七) 常用指令 git reset
  4. buuctf [GKCTF 2021]你知道apng吗 <apng图片格式的考察>
  5. C++容器 bitset
  6. mfc如何将一个数组中的字节数据用串口发送出去_[翻译] 串口通信的帧(frame)...
  7. 干掉Dubbo !这个后端开发框架就是王者!
  8. Java环境配置出现的问题及解决办法
  9. 小米距告别破发还差2分钱
  10. mysql注释符号_MySQL基础知识(2021最新版教程)
  11. JS中的变量和输入输出
  12. 3.3V和1.8V电平双向转换——电平转换芯片
  13. 齐齐哈尔计算机应用软件学校,齐齐哈尔职业学院计算机应用技术专业介绍
  14. docker容器技术之虚拟化网络概述(四)
  15. FX5U MODBUS_TCP通讯
  16. FPGA数字图像处理
  17. 如何设置计算机自动连接宽带,Win7系统如何设置开机自动连接宽带?
  18. lsdyna如何设置set中的node_list_如何画出一幅好看的图
  19. 【区块链108将】区块链无权威,参与之前多了解才可能赚钱
  20. MVC中方便的[Authorize],加上这特性,就可以加上登录验证

热门文章

  1. 可以买的一本书:3D计算机图形学(原书第3版)
  2. 思想已经高过行动好多了
  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第28篇]什么是公钥密码学的IND-CCA安全定义?
  4. [Leetcode][JAVA][第912题][排序算法]
  5. iview 可以选择当天 禁用_人脸识别刚要普及,怎么就被禁用了?|人脸识别|人脸信息|世超|rekognition...
  6. linux 文件按时间 函数,[Linux文件属性]使用utime函数操作文件的时间参数
  7. mysql memcache redis_redis,mysql,memcache的區別與比較,redis兩種數據存儲持久化方式
  8. html简单父子页面,js 的 iframe 父子页面通信的简单方法
  9. thinkphp5 判断数据是否存在_ThinkPHP 5.1 中间件中判断要访问的操作是否存在
  10. Qt 编码问题QTextCodec