问题描述
  小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。
  小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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,就比如:a[i+k(n-1)], a[i+kn], a[i+k(n+1)] 时候,模拟是做不了的,同时这个给了我思路,我可以通过分组的动态规划来写,及分组公式为 i+kn.(0<=i<k, i+kn<maxx)
当k=2,maxx=10 的分组情况:
i=0: 0 2 4 6 8 10
i=1: 1 3 5 7 9
状态转移方程为dp[j]=max(dp[j-1],dp[j-2]+cnt[j]), dp[j-1]=a[i+k(n-1)], dp[j-2]=a[i+k(n-2)], cnt[j]=a[i+kn].

#include <iostream>
#include<math.h>
#include <stdio.h>
using namespace std;
#define max(a,b) ((a) > (b) ? (a) : (b))
#define min(a,b) ((a) < (b) ? (a) : (b))
const int maxn = 100000+10;//范围要包含数据范围
int a[maxn];
int dp[maxn];
int cnt[maxn];
int n,k;
int main(){cin >> n >> k;int maxx = -1;int ans = 0;for (int i = 0; i < n; i++) {int b;cin >> b;maxx = max(maxx, b);//找到最大的数,这样遍历就不用每次遍历到maxn;a[b]++;//cout << a[b] << endl;}if (k == 0) {//当k=0,不用分组,只要不为0 就加一for (int i = 0; i <= maxx; i++) {if(a[i]!=0)ans ++;}}else {/*分组记分为 i+kn 其中i:0 到 k-1,且i+kn<=最大的数*/for (int i = 0; i < k; i++) {//控制iint y = 0;for (int j = i; j <= maxx; j+=k) {//控制n//cout << j << endl;cnt[y++] = a[j];//把分组后的每个数值存储在cnt里面 cnt[0]=a[i+0*k],cnt[1]=a[i+1*k]以此类推}dp[0] = cnt[0];//把dp[0]初始化cnt[0]for (int j = 1; j < y; j++) {if (j == 1) {dp[j] = max(dp[0], cnt[j]);//cout << dp[j] << endl;}else {//相邻的两组不能放在一起,dp[j]=max( dp[i-1],dp[i-2]+cnt[j])dp[j] = max(dp[j - 1], dp[j - 2] + cnt[j]);}}ans += dp[y - 1];}}//cout << endl;cout << ans << endl;return 0;
}

试题 历届试题 对局匹配(动态规划)保证简单相关推荐

  1. 试题 历届试题 翻硬币(贪心)

    试题 历届试题 翻硬币 资源限制 时间限制:1.0s 内存限制:256.0MB Work hard,Play harder. 问题描述 小明正在玩一个"翻硬币"的游戏. 桌上放着排 ...

  2. 试题 历届试题 买不到的数目(dp/数学)

    试题 历届试题 买不到的数目 资源限制 时间限制:1.0s 内存限制:256.0MB $Daily English 曾几何时,我流连梦境,心比天高,人生充满希望. I dreamed a dream ...

  3. 【蓝桥杯VIP】试题 历届试题 带分数(满分 Python解法+Java解法)

    [蓝桥杯VIP]试题 历届试题 带分数(满分 Python解法+Java解法) 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 100 可以表示为带分数的形式:100 = 3 + 6 ...

  4. 试题 历届试题 矩阵翻硬币

    原题链接:试题 历届试题 翻硬币 1.懒得样式,截图如下 2.思路: 首先,同时翻动两个相邻的硬币,这就意味着不同的硬币的个数一定是偶数个,如果是奇数个永远也达不到目标状态. 其次,顺序翻转就是翻转次 ...

  5. 试题 历届试题 包子凑数(dp)

    试题 历届试题 包子凑数 资源限制 时间限制:1.0s 内存限制:256.0MB 0x00 问题描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包 ...

  6. 试题 历届试题 幸运数(二分)

    试题 历届试题 幸运数 资源限制 时间限制:1.0s 内存限制:256.0MB 题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然 ...

  7. 试题 历届试题 带分数(全排列)

    试题 历届试题 带分数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 ...

  8. java 试题 历届试题 单词分析 题解

    试题 历届试题 单词分析 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度 ...

  9. 蓝桥杯---试题 历届试题 填字母游戏(博弈)

    试题 历届试题 填字母游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏 ...

  10. 蓝桥杯试题 历届试题 李白打酒

    蓝桥杯试题 历届试题 李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他 ...

最新文章

  1. 用iPhone薅Google羊毛:相册可无限存储高清照片,只要一步设置就搞定
  2. layui进度条bug
  3. [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
  4. C语言文件操作解析(二)
  5. ***必备兵器与技能
  6. 如何在Chrome中保存您当前的所有标签,以便以后阅读
  7. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节2:I/O控制器
  8. anconda设置镜像源_三、DockerFile 定制属于自己的专属镜像
  9. SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理
  10. IOS学习笔记04---编写第一个C语言程序-Hello World
  11. firefox如何载入json文件_Firefox在书签工具栏中推隐藏“其他书签”文件夹功能
  12. 高级GIS-0.整体裁剪
  13. Java使用ODBC连接Access数据库
  14. 计算机对log取反函数,ln计算(log计算器在线)
  15. CAD二次开发C#——动态绘制矩形(DrawJig)
  16. python经纬度转换xy坐标公式 pyqt_EXCEL公式进行经纬度与XY坐标的相互转换
  17. 数据库使用率对比【CSDN指数】
  18. 日落潭照树,川明风动花。
  19. 图片择优算法(模糊图片筛选出最清楚的图片) 没有使用第三方库
  20. 陈都灵现身海南国际电影节,新片《关索岭》票房有望超《阿凡达》

热门文章

  1. 【手把手带你Godot游戏开发】FlappyBird:7 心里有数(计分系统)
  2. python微信红包_Python实现的微信红包提醒功能示例
  3. iOS Xcode始终提示library not found for xxx的时候
  4. 智能语音的扫地机器人介简_岚豹激光智能扫地机器人之语音控制
  5. matlab滤音频 某一频率的噪声 利用带阻滤波器
  6. 智能佳 金刚足球机器人 竞赛机器人 智能机器人
  7. 试题 算法训练 黑色星期五(Java)
  8. JAVA生成json效率_java序列化和json序列化效率对比
  9. 带你秒懂 SSR-服务端渲染
  10. scatter配合硬件钱包实现EOS离线签名