1030 完美数列 (25 分)二分

1030 完美数列 (25 分)

给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 Mmp,则称这个数列是完美数列。

现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

输入格式:

输入第一行给出两个正整数 N 和 p,其中 N(105​​)是输入的正整数的个数,p(109​​)是给定的参数。第二行给出 N 个正整数,每个数不超过 109​​。

输出格式:

在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

输入样例:

10 8
2 3 20 4 5 1 6 7 8 9

输出样例:

8
思路
  先对数列进行排序,然后枚举左端点也就是最小值m,然后查找一个尽可能大的右端点M使得M<=m*p
,由于数列已经排序,所以可以使用二分查找。upper_bound()返回第一个大于待查找元素的数列元素的
下标,如果没有找到,返回第n个元素(不存在),所以需要进行返回值判断。
注意点是m*p会超过int。
code 1:手写二分
#include<iostream>
#include<string>
#include<vector>
#include<string>
#include<cstdio>
#include<cmath>
#include<string.h>
#include<algorithm>
#include<unordered_map>
#include<stack>
using namespace std;int main()
{int n,p;scanf("%d%d",&n,&p);long long int a[n];for(int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);int maxv=0;for(int i=0;i<n;i++){int left=i,right=n-1,ans=-1;while(left<=right){int mid=left+(right-left)/2;if(a[mid]<=a[i]*p){ans=mid;left=mid+1;}elseright=mid-1;}if(ans!=-1)maxv=max(maxv,ans-i+1);}cout<<maxv;return 0;
}

code2 使用库函数

#include<iostream>
#include<string>
#include<vector>
#include<string>
#include<cstdio>
#include<cmath>
#include<string.h>
#include<algorithm>
#include<unordered_map>
#include<stack>
using namespace std;int main()
{int n;long long p;scanf("%d%lld",&n,&p);long long int a[n];for(int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);int maxv=0;for(int i=0;i<n;i++){int index=upper_bound(a+i,a+n,a[i]*p)-a;if(index==n)index--;while(a[index]>a[i]*p) index--;maxv=max(maxv,index-i+1);}cout<<maxv;return 0;
}

 

 

转载于:https://www.cnblogs.com/zhanghaijie/p/10406416.html

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

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

相关文章

两性位置

男生不被女生当回事&#xff0c;在自己身上&#xff0c;需要从自身找原因 1.过度看重对方&#xff0c;会让对方看轻自己 2。气场比较弱&#xff0c;本身实力弱&#xff0c;会让对方俯视自己 3.太过善良&#xff0c;一昧迁就&#xff0c;会导致自己失去生活重心&#xff0c;让…

高质高效软件开发组织能力模型

背景至今&#xff0c;我在Motorola网络部工作超过了5年&#xff0c;所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的&#xff0c;但这5年多的工作经历从未引起我象微博上对于SCRUM话题的激烈讨论这样的思考。原因之一可能是&#xff0c;公司…

python并发编程之多线程

多线程 线程 1.什么是线程 进程是一个执行空间 , 线程就是其中真正工作的单位 , 每一个进程至少有一个线程(如果我们把操作系统比喻为一个工厂 , 进程就是车间 , 线程就是流水线) 进程包含了运行该程序所需要所有资源 , 进程是一个资源单位 , 线程是CPU的最小执行单位 每一个进…

JavaScript几个难点

1. 立即执行函数 立即执行函数&#xff0c;即Immediately Invoked Function Expression (IIFE)&#xff0c;正如它的名字&#xff0c;就是创建函数的同时立即执行。它没有绑定任何事件&#xff0c;也无需等待任何异步操作&#xff1a; (function() { // 代码 // ...})(); f…

真格量化学习

真格量化学习使用 期权的量化回测 引入必须的库: from PoboAPI import * import datetime import time import numpy as np初始化参数设定 以50为例 def OnStart(context) :print("I\m starting...")#设定一个全局变量品种,本策略交易50ETF期权g

智能小程序档案馆——如何给“包”瘦身

上传小程序代码的时候包体积太大不知如何是好&#xff1f;小程序打开速度慢&#xff0c;流量耗费大不知如何优化&#xff1f;在今天的文章里&#xff0c;我们一起来讨论一下如何给“包”瘦身。 为什么要限制包的大小&#xff1f; 我们都知道小程序作为一种 Hybrid 的解决方案&a…

软件架构师的能力与特质

软件开发工程师的职业发展无非两大类&#xff1a;一是做“官”&#xff0c;从事管理工作&#xff1b;二则继续从事技术工作。对于后者&#xff0c;软件架构师&#xff08;software architect&#xff09;是很多软件开发工程师追求的理想岗位。在这我想谈一谈软件架构师所需的几…

IntelliJ IDEA编码设置

见&#xff1a;https://www.cnblogs.com/winner-0715/p/6364306.html项目中为了避免乱码等问题应该使用UTF-8编码方式,其实把编码方式设置成UTF-8是创建完项目后就要做的事,按照如图所示进行设置&#xff1a;这里要将Transparent native-to-ascii conversion选项勾选, 否则项目…

C#实现像微信PC版一样的扫码登录功能

现在好些网站都支持扫码登录,感觉上安全了很多,但是本地程序扫码登录的不多,就用C#实现了一下,需要作如下准备 在官网上申请一个企业微信,有条件的话做个企业认证吧,我们的是认证过的,所以账号和本地其他系统的账号是统一的.在应用中创建一个应用,这个是关键,我们扫码就是和它有…

JVM(一)史上最佳入门指南

2019独角兽企业重金招聘Python工程师标准>>> 提到Java虚拟机&#xff08;JVM&#xff09;&#xff0c;可能大部分人的第一印象是“难”&#xff0c;但当让我们真正走入“JVM世界”的时候&#xff0c;会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的…

如何成为一个技术“牛人”

今天给浙江大学过来的几个还没有毕业的研究生做面试&#xff0c;这些研究生是想来公司实习的。在面试的过程中&#xff0c;一个学生问我“我们有C/C、JAVA等等多种语言&#xff0c;我如何才能成为某一方面的一个技术牛人呢&#xff1f;这一问题一直困扰着我”&#xff0c;对于这…

python量化数据处理小细节(以后还会不断补充)

使用tushare数据源获取数据后处理 以下都是本人在获得数据后&#xff0c;进行量化回测时&#xff0c;处理数据遇到的各种坑以及解决方案&#xff0c;有些甚至都很幼稚&#xff0c;切勿嘲笑 获取数据 导包 import tushare as ts import pandas as pd import matplotlib #(ju…

Linux find和grep的区别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 grep是查找文件中匹配条件的行&#xff0c;find是搜索匹配条件的文件。 1.find:查找文件或目录语法: find 查找位置 文件名或目录名如:在…

Mysql 忘记密码重置教程

https://jingyan.baidu.com/article/454316ab4e9e65f7a7c03ad1.html 百度经验转载于:https://www.cnblogs.com/leaf-cq/p/10410694.html

067:【Django数据库】ORM查询条件详解-range

【Django数据库】ORM查询条件详解-range range&#xff1a;判断某个 field 的值是否在给定的区间中。示例代码如下&#xff1a; # views.py文件内容&#xff1a;from datetime import datetime from django.utils.timezone import make_awaredef index(request):start_time ma…

贴吧爬虫

import requests import re#根据url获取网页html内容 def getHtmlContent(url):page requests.get(url)return page.texthtml getHtmlContent(https://tieba.baidu.com/p/4840106397)#以html中使用re模块解析出所有jpg图片的url #百度贴吧html中jpg图片的url格式&#xff1a;…

别把自己变成了“二等公民”

上周参加一个代码审查会&#xff0c;在会上发现了设计上的一个很严重的错误。于是&#xff0c;我提了好几个问题&#xff0c;想知道为什么会出现这一错误。但是&#xff0c;我的同事告诉我这都是印度团队做的设计。需要提供的一个背景信息是&#xff0c;这个项目是我所在的研发…

jquery函数加载及生成随机数

$(document).ready(function () {var code ; //在全局定义验证码  1.将函数写好 function createCode(){code "";var codeLength 4;//验证码的长度var checkCode document.getElementById("code");var random new Array(0,1,2,3,4,5,6,7,8,9,A,B,C…

rsync解说

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、简介1、认识Rsync&#xff08;remote synchronize&#xff09;是一个远程数据同步工具&#xff0c;可通过LAN/WAN快速同步多台主机间…

关于java中getClass()和getSuperClass()的讲解

为了讲解这个问题&#xff0c;我们先来看一下下面的代码: package com.yonyou.test;import java.util.Date;class Test extends Date{private static final long serialVersionUID 1L;public static void main(String[] args) {new Test().print();}public void print(){Syste…