历届试题 对局匹配-(dp)
小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。
现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。
小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?
第二行包含N个整数A1, A2, ... AN。
对于30%的数据,1 <= N <= 10
对于100%的数据,1 <= N <= 100000, 0 <= Ai <= 100000, 0 <= K <= 100000
1 4 2 8 5 7 1 4 2 8
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<set>
#include<queue>
#include<cstring>
#define ll long long
using namespace std; int n,k,x;
int dp[];///开这么大,防止k巨大,数组越界
int cnt[]; int main()
{
memset(dp,,sizeof(dp));
scanf("%d%d",&n,&k);
int maxx=-,ans=;
for(int i=;i<n;i++)
{
scanf("%d",&x);
cnt[x]++;
maxx=max(maxx,x);
}
if(k)
for(int i=;i<k;i++)///i对应分组 0到k-1这k个分组
{
int j;
for(j=i;j<=maxx;j=j+k)
{
if(j-*k>=)
dp[j]=max(dp[j-*k]+cnt[j],dp[j-k]);///取和不取
else if(j-k>=)
dp[j]=max(cnt[j],dp[j-k]);
else
dp[j]=cnt[j];
}
ans+=dp[j-k];///跳出循环的j超过maxx了
}
else
for(int i=;i<=maxx;i++)
if(cnt[i])
ans++;
printf("%d\n",ans);
return ;
}
历届试题 对局匹配-(dp)的更多相关文章
- 蓝桥杯 试题 历届试题 对局匹配 DP解决
问题描述 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两人分差 ...
- 转 蓝桥杯 历届试题 波动数列 [ dp ]
传送门 历届试题 波动数列 时间限制:1.0s 内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个 ...
- 蓝桥杯历届试题-垒色子(DP+矩阵快速幂)
一.题目 垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体.经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子: ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 算法笔记_172:历届试题 波动数列(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度 ...
- 算法笔记_183:历届试题 九宫重排(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成 ...
- 算法笔记_176:历届试题 最大子阵(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入 ...
- 蓝桥 PREV-30 历届试题 波动数列 【动态规划】
历届试题 波动数列 时间限制:1.0s 内存限制:256.0MB 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. ...
- Java实现蓝桥杯第八届决赛 对局匹配
标题:对局匹配 小明喜欢在一个围棋网站上找别人在线对弈.这个网站上所有注册用户都有一个积分,代表他的围棋水平. 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起.如果两 ...
随机推荐
- 百度翻译API(C#)
百度翻译开放平台:点击打开链接 1. 定义类用于保存解析json得到的结果 public class Translation { public string Src { get; set; } pub ...
- 并发编程:IO多路复用。
一 IO模型: Stevens在文章中一共比较了五种IO Model: * blocking IO#阻塞模型 * nonblocking IO#非阻塞 * IO multiplexing#多路复用 ...
- 「2017 山东一轮集训 Day5」距离
/* 写完开店再写这个题目顿时神清气爽, 腰也不疼了, 眼也不花了 首先考虑将询问拆开, 就是查询一些到根的链和点k的关系 根据我们开店的结论, 一个点集到一个定点的距离和可以分三部分算 那么就很简单 ...
- 1-hadoop安装、ssh、节点退役与服役
1.准备 四台虚拟机 ①卸载openjdk ②安装jdk 2. 配置静态ip: ip : 每个机器在internet上的唯一标识 子网掩码: 必须结合IP地址一起使用,将某个IP地址划分成网络地址和主 ...
- python- do_excel
# @File : class_01_do_excel.py # coding=gbk #pip install openpyxl #新建.xlsx,一定要右键新建 from openpyxl imp ...
- 权重比较(id class 标签)
权重的取值: 按照 id class 标签 的顺序在其位置上标出1或者0 例如下面的例子 <!DOCTYPE html> <html lang="en"&g ...
- Python-1 试玩OpenCV
昨天同事说微信更新有跳一跳小游戏,便更新了玩一玩.至于抄袭不抄袭我不讨论,看玩法和色彩都很简洁.想用Python试试摄像头捕捉图像,然后分析距离每次都能跳到中心,有生物机械手指之类的再弄到树莓派上岂不 ...
- [Unity插件]Lua行为树(八):行为节点扩展
先看一下之前的行为节点是怎么设计的: BTAction.lua BTAction = BTTask:New(); local this = BTAction; this.taskType = BTTa ...
- 项目经验分享[转自min.jiang]
最近三个月,我非常荣幸的做为TeamLeader带领几个小组成员做了一个国外项目,这里想为大家分享一些小经验,尽管我佣有六年多的项目经验,但我一直的方向是架构师.大家知道架构师一般情况是偏向技 ...
- Java课程作业之动手动脑(六)
1.使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件. import java.io.IOException; import java.nio.file ...