对局匹配

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


  小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是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为差值,所有的等差数列进行划分,各自求出所能容纳的最多不匹配的个数,然后加起来即可。
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <set>
#include <algorithm>
using namespace std;
int dp[100001][2];
int n,k,c,d,ans;
int main() {scanf("%d %d",&n,&k);for(int i = 0;i < n;i ++) {scanf("%d",&d);if(dp[d][1] ++ == 0) c ++;}if(!k) printf("%d",c);else {for(int i = 0;i < k;i ++) {for(int j = 100000 - i - k;j >= 0;j -= k) {dp[j][0] = max(dp[j + k][0],dp[j + k][1]);dp[j][1] += dp[j + k][0];}ans += max(dp[(100000 - i) % k][0],dp[(100000 - i) % k][1]);}printf("%d",ans);}
}

 

转载于:https://www.cnblogs.com/8023spz/p/9068087.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NodeJS作为Web架构中间层的使用

截至2016年12月&#xff0c;中国网民规模已达7.31亿。传统的网站系统是否能够支撑得起如此庞大的且不断增长的用户访问并且为用户提供体验友好的页面&#xff1f; 一、传统的前后端&#xff1a; 二、传统的前后端分离问题&#xff1a; 性能问题&#xff1a; 1、渲染、数据都在…

Springboot项目修改html后不需要重启---springboot项目的热部署

一、spring-boot-devtools 在pom中直接引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 设置以下两项&#xff08…

Hibernate中session的get方法和load方法的区别

一.发送SQL时机&#xff1a; load方法采用延迟加载&#xff08;lazy懒加载&#xff09;&#xff0c;执行到这行代码的时候&#xff0c;不会发送SQL语句&#xff0c;当真正使用这个对象的数据&#xff08;对象的数据不包括主键&#xff09;的时候才发送SQL语句&#xff1b; get…

Node.js Web 开发框架大全《中间件篇》

这篇文章与大家分享优秀的 Node.js 中间件模块。Node 是一个服务器端 JavaScript 解释器&#xff0c;它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序&#xff0c;编写能够处理数万条同时连接到一个&#xff08;只有一个&#xff09;物理机的…

windows server 2012 流媒体服务器搭建(直播与点播)

IIS Live Smooth Streaming&#xff08;实时平滑流式处理&#xff09;是微软下一代流媒体解决方案。该技术是在IIS web中集成媒体传输平台IIS media services&#xff0c;实现利用标准 HTTP Web 技术以及高级 Silverlight 功能&#xff0c;确保在互联上传输质量最佳、播放流畅音…

团队项目第一篇——NABCD

团队名称&#xff1a;筑梦之舟 团队项目名称&#xff1a;跑跑 N&#xff08;Need&#xff09;需求&#xff1a; 有许多人在跑步时想了解自己的移动轨迹和跑步距离很不便利&#xff0c;无法了解跑步的日程&#xff0c;我们的软件就是为了更加方便热爱跑步的人能够参加到跑步之中…

Vue warn Failed to mount component: template or render function not defined

问题如图&#xff0c;造成这类的问题一般有这么几个原因。 代码的拼写问题&#xff0c;当然这是最低级的错误vue定义的问题&#xff0c;这里我说明两点 在组件内部定义组件时&#xff0c;template 对应的必须是html字符串引用外部组件时&#xff0c;vue文件必须以template标签…

Python实现线性回归2,梯度下降算法

接上篇 4.梯度下降算法 《斯坦福大学公开课 &#xff1a;机器学习课程》吴恩达讲解第二课时&#xff0c;是直接从梯度下降开始讲解&#xff0c;最后采用向量和矩阵的方式推导了解析解&#xff0c;国内很多培训视频是先讲解析解后讲梯度下降&#xff0c;个人认为梯度下降算法更为…

在centos和redhat上安装docker

前置条件 64-bit 系统kernel 3.101.检查内核版本&#xff0c;返回的值大于3.10即可。$ uname -r 2.使用 sudo 或 root 权限的用户登入终端。 3.卸载旧版本(如果安装过旧版本的话) $ yum remove docker \docker-common \docker-selinux \docker-engine 4.安装需要的软件包 #yum-…

mac 下用 brew 安装mongodb

mac 下安装mongoDB一般俩种方法. (1)下载源码,解压,编译,配置,启动 比较艰难的一种模式. (2)brew install mongodb ,然后就可以悠闲的品一口茶,顺便瞄一眼网易新闻,这是一种傻瓜模式. 但傻瓜模式也有人为干预的时候,粗略说一下使用brew 安装mongodb 1 zhangzhimoke:~/code$…

比较python类的两个instance(对象) 是否相等

http://www.yihaomen.com/article/python/281.htm 比较python类的两个instance(对象) 是否相等 作者:轻舞肥羊 日期:2012-10-25 字体大小: 小 中 大对于同一个Class,可以创建不同的实例(instance), 如何比较这两个 instance 是否相等呢&#xff1f;我们知道&#xff0c;对于计算…

Mybaits插入记录返回主键值

某些情况进行insert时不知道主键值&#xff08;主键为自增&#xff09;&#xff0c;例如系统新增用户时&#xff0c;有用户序号&#xff08;主键 自增&#xff09;&#xff0c;用户名&#xff0c;密码。插入时只需插入用户名和密码&#xff0c;之后取得mysql自增的序号。 如下为…

Mac 解决brew一直卡在Updating Homebrew

运行命令brew install node&#xff0c;结果界面一直卡在Updating Homebrew...上&#xff0c;有两种解决办法 方法一&#xff1a;直接关闭brew每次执行命令时的自动更新&#xff08;推荐&#xff09; vim ~/.bash_profile# 新增一行 export HOMEBREW_NO_AUTO_UPDATEtrue方法二…

CAS单点登录原理简单介绍

1. SSO简介 1.1 单点登录定义 单点登录(Single sign on)&#xff0c;英文名称缩写SSO&#xff0c;SSO的意思就是在多系统的环境中&#xff0c;登录单方系统&#xff0c;就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以。计划在项目中加…

前端跨域通信的几种方式

前言 前端通信类的问题&#xff0c;主要包括以下内容&#xff1a; 1、什么是同源策略及限制 同源策略是一个概念&#xff0c;就一句话。有什么限制&#xff0c;就三句话。能说出来即可。 2、前后端如何通信 如果你不准备&#xff0c;估计也就只能说出ajax。 3、如何创建Aja…

T4((Text Template Transformation Toolkit))模版引擎之基础入门 C#中文本模板(.tt)的应用...

1 关于C#中文本模板(.tt)的简单应用https://blog.csdn.net/zunguitiancheng/article/details/78011145 任何一个傻瓜都能写出计算机能理解的程序&#xff0c;而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler 2 T4模版引擎之生成数据库实体类 http://www.cnblogs…

LeetCode412Fizz Buzz

写一个程序&#xff0c;输出从 1 到 n 数字的字符串表示。 1. 如果 n 是3的倍数&#xff0c;输出“Fizz”&#xff1b; 2. 如果 n 是5的倍数&#xff0c;输出“Buzz”&#xff1b; 3.如果 n 同时是3和5的倍数&#xff0c;输出 “FizzBuzz”。 示例&#xff1a; n 15, 返回: [ …

vue+node实现中间层同步调用接口

为了应对业务的复杂性&#xff0c;提高前端的渲染能力&#xff0c;故在项目中引入nodejs做中间层&#xff0c;前端承接vue&#xff0c;后端对接Java。 至于为什么这么搞&#xff0c;网上有好多文章都在讨论&#xff0c;可以说仁者见仁智者见智&#xff0c;这里我们不在深究。 …

ES6学习笔记(二十二)ArrayBuffer

ArrayBuffer ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。它们都是以数组的语法处理二进制数据&#xff0c;所以统称为二进制数组。 二进制数组由三类对象组成。 &#xff08;1&#xff09;ArrayBuffer对象&#xff1a; 代表内存之…

如何正确地使用Java的@deprecated标注

没有什么事情比看到一个没有任何说明的deprecated标注更让人愤怒的事情了。这种做法只能让人困惑&#xff0c;我到底还要不要用这个已经‘废弃’的方法&#xff1f;如果开发者不希望某个方法再被人用的话&#xff0c;就要好好地为deprecated标注写说明。这篇文章就讨论了正确地…