Birthday present

2024-03-03 04:58
文章标签 birthday present

本文主要是介绍Birthday present,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Birthday present

题目描述

Bob’s father’s birthday is coming,.Because Bob’s father is a math teacher so that Bob wanted to give him an array of positive intergers a of length n as a gift.His father thinks that an array’s beauty is the greatest common divisor of all its elements. Bob wants to give him as beautiful an array as possible. But the shop has only one array a left. So Bob wants to decrease some numbers in the array(no more than K for each number).Bob can obtain array b from array a if the following conditions hold: bi > 0; 0 ≤ ai - bi ≤ k for all 1 ≤ i ≤ n.Help Bob find the maximum possible beauty of the array he will give to his father .

输入

The first line contains two integers n and k (1 ≤ n ≤ 3·1e5; 1 ≤ k ≤ 1e6). The second line contains n integers ai (1 ≤ ai ≤ 1e6) — array a.

输出

In the single line print a single number — the maximum possible beauty of the resulting array.

样例输入

6 1
3 6 10 12 13 16

样例输出

3
题目大意:Bob's的父亲生日快到了,他想送给他父亲一个数组长度为n的正整数(送数组???),他父亲认为数组的美是这个数组的最大公约数,Bob's想送一个最大公约数最大的数组,但是店里只剩下一个数组了,Bob's可以减少数组中的某些数来改变这个数组的最大公约数,减少最多不超过k。

分析:这个数组的最大公约数<=最小值,并且最小是1;那么我们就可以先找到数组的最小值然后用这个最小值挨个和其他数比较如果全都满足 a[i]-a[i]/min*min<=k&&a[i]-a[i]/min*min>=0 (a[i]/min的余数<=k&&a[i]/min的余数>=0)那么我们要找的就是这个min,否则min自减在循环一次,直到min==1;


#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;int main()
{	int n,k;while(scanf("%d%d",&n,&k)!=EOF){int a[300005]={0};int minn=1000005; for(int i=0;i<n;i++){scanf("%d",&a[i]);if(a[i]<minn)minn=a[i];}int flag,t;for(t=minn;t>0;t--){flag=1;for(int i=0;i<n;i++){if((a[i]-a[i]/t*t>k)||(a[i]-a[i]/t*t<0)){flag=0;break; }}if(flag){printf("%d\n",t);break;}}}return 0;
}


这篇关于Birthday present的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768510

相关文章

CF629D Babaei and Birthday Cake

题意:给出N个半径,和高的圆柱,要求后面的体积比前面大的可以堆在前一个的上面,求最大的体积和。 dp[i]=max(dp[j])+v[i](j<i&&v[i]>v[j]); 离散化,线段树维护区间最大值 import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import

Vue3图片上传报错:Required part ‘file‘ is not present.

错误 "Required part 'file' is not present" 通常表明服务器期望在接收到的 multipart/form-data 请求中找到一个名为 file 的部分(即文件字段),但实际上没有找到。这可能是因为以下几个原因: 请求体构建不正确:在发送请求时,可能没有正确地将文件添加到 FormData 对象中,或者使用了错误的字段名。 前端代码错误:在前端代码中,可能

解决Vue请求 ‘No 'Access-Control-Allow-Origin' header is present on the requested resource’错误

如果我们用VueResouce直接请求,这样写(以豆瓣api为例): this.$http.get('https://api.douban.com//v2/movie/top250').then((response) => {this.movie = response.data;console.log(this.movie); }); 就会报错: 因为这是一个跨域的请求,不能直接

Golang中present工具

1.简介 Golang Present 是 Golang 社群开发出來的一个简单工具。Golang 相关的技术幻灯片有多种格式,以 .ppt, .pdf 和 .slide 为主。 2. 安装 首先你得安装好 golang,配置好环境,比如我的配置 export GOROOT=/usr/local/goexport GOPATH=/Users/ljw/Go_Projectsexport

Codeforces Round #327 (Div. 1) E. Birthday【AC自动机+网络流】

先用AC自动机处理子串的问题 建立AC自动机,在上面标记出这个位置含有的串( num[v] num[v])以及维护fail指针含有的串( last[v] last[v])。 这是简单的处理,和沈阳站的B题简直异曲同工。 然后形成了一个DAG图,再用floyd算法将维护出整个DAG图。 用网络流Dinic处理最大独立集的问题,胡伯涛的论文有提及二分图的最大独立集做法。将DAG拆点转化为二分图

ZOJ 3904 Birthday Gift【NTT】

首先,我们知道的是, num1+num2=N num_1+num_2=N,其中 num1 num_1是Alice的盒子数, num2 num_2是Bob的盒子数。 那么 ans[N]=∑Alice(num1)×Bob(N−num1) ans[N]=\sum Alice(num_1)\times Bob(N-num1),明显是FFT的卷积形式。 接下来分析 Alice(num1) Alice(n

Required request part ‘file’ is not present

微信小程序遇到这种问题, 1、但是微信小程序的模拟器可以正常上传 2、真机上上传请求,服务器端报错,接受的消息体中没有文件的信息 原因是:微信公众平台上的uploadFile 服务器配置没有配置好用来上传文件的域名 找到如下图的位置,填写上相对应的文件服务器的域名即可

【ASP.NET】 No 'Access-Control-Allow-Origin' header is present on the requested resource.

前端JS用XMLHttpRequest,请求后端数据。出现了No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 我是使用的ASP.NET框架。 解决办法: 在Web.config文件相应地方添加: <?xml version="1.0" encoding="utf-8"?><confi

Required xxx parameter xxxx is not present

查看后台接口参数和前端参数是否一致

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑,可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界,把边界内的每列当成一个格子的话,问题就变成了求和至少大于等于