1085 Perfect Sequence

news/2024/7/3 7:34:57

明确题目的核心是要找到 找到第一个满足 M > m*p 的M的下标。然后用该下标减去起点的下标即为序列元素个数。

二分区间应当是M所有可能的取值范围。起点是i+1,终点是N而不是N-1,虽然A[N]上无元素。注意啊,原题要找的M是小于等于m*p的,所以这里的M可以是不存在的(返回M应该在的位置)。

注意点:

1. m*p可能溢出,最好改成M*1.0/p > m。

2. 要对元素个数为1或2的情况特判。

AC

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
#include<stack>
#include<cmath>using namespace std;typedef long long LL;const int maxn = 100010;
//const LL SUP = (1LL<<63)-1;
int A[maxn];
int N,p;int BS(int m,int l,int r){int mid;while(l<r){mid = (l+r)/2;if(m<A[mid]*1.0/p){r = mid;}else{l = mid+1;}}return r;
}int main(){ cin>>N>>p;for(int i=0;i<N;i++){cin>>A[i];}sort(A,A+N);if(N==1){printf("1");return 0;}if(N==2){if(A[0]>=A[1]*1.0/p)printf("1");else printf("2");return 0;}int ans = 0; //找到第一个满足 M > m*p 的M for(int i=0;i<N-2;i++){int num = BS(A[i],i+1,N) - i;ans = max(ans,num);}printf("%d",ans);return 0;
}


http://lihuaxi.xjx100.cn/news/240868.html

相关文章

Linux (x86) Exploit 开发系列教程之十一 Off-By-One 漏洞(基于堆)

Off-By-One 漏洞&#xff08;基于堆&#xff09; 译者&#xff1a;飞龙 原文&#xff1a;Off-By-One Vulnerability (Heap Based) 预备条件&#xff1a; Off-By-One 漏洞&#xff08;基于栈&#xff09;理解 glibc mallocVM 配置&#xff1a;Fedora 20&#xff08;x86&#xff…

【Appium】Appium+Python环境搭建

环境准备&#xff1a; 1.jdk 2.android-sdk 3.python 4.Node.js 5.appium 6.Appium-Python-Client 1. 下载jdk1.7&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 1&#xff09;如果系统中存在其他版本…

PAT(甲级)2021年秋季考试summary

91 分 排名大概是1/3的段位 第一题是定义了一个特殊的数据结构&#xff0c;我用二分法做&#xff0c;样例通过了&#xff0c;但是得分11/20&#xff0c;测试用例只过了前两个&#xff0c;死活通不过其他的。问题出在declare这个词上&#xff0c;最后不是问输出了多少数组&…

计算机会议排名等级

http://blog.sina.com.cn/s/blog_9c411c310102vs2g.html 附件是计算机领域的学术会议等级排名情况&#xff0c;分为A, A, B, C, L 共5个档次。其中A属于顶级会议&#xff0c;基本是这个领域全世界大牛们参与和关注最多的会议。国内的研究者能在其中发表论文的话&#xff0c;是很…

可能是 nginx 限速最容易理解的说明

nginx 限速研究汇报 写在前面 这两天服务器带宽爆了&#xff0c;情况如下图&#xff1a; 出于降低带宽峰值的原因&#xff0c;我开始各种疯狂的研究nginx限速。下面是我研究过程中的心得&#xff01;&#xff08;花了好几个小时的时间写的人生第一篇技术类网文&#xff09; 限速…

二分法典例:木棒切割问题

Input : 输入木棒根数n&#xff0c;要得到的等长木棒数量K&#xff0c;以及n根木棒的长度。 Output : 等长木棒的最大长度。 用二分法求解这道题&#xff0c;首先要找到以得到的等长木棒数量为因变量、等长木棒长度为自变量函数。 int getK(int l){//随着l增大&#xff0c;返…

1044 Shopping in Mars

这题我写了两个二分函数。 BS借用的模板是找到第一个大于等于总价的商品下标&#xff0c;然后返回的是钻石价值和减去商品总价&#xff0c;通过遍历来得到最小的差值&#xff0c;注意遍历的最后一个数字的时候可能会返回负值&#xff0c;所以只有当返回值大于等于0才可以用来竞…

利用Redis进行全页面缓存的简单Demo

2019独角兽企业重金招聘Python工程师标准>>> 使用Redis进行全页面缓存&#xff0c;如何实现呢&#xff1f;本文使用简单的思路来实现这个功能。 一、环境介绍 使用的开源框架主要是springmvc、spring-data-redis、redis开发工具&#xff1a;Intellij IDEA 2017.2.4j…