PAT 1020 完美数列(25)(贪心暴力)

原创 2016年06月01日 16:11:46
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

暴力查找的时候注意,优化,即在循环外层的时候,至少可以少跑ma个间隔,因为有之前的状态满足,只需找更大的。

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<queue>
#define inf 0x3f3f3f3f
#define LL long long
using namespace std;
LL  arr[100010];
int main(){
    LL n,m,i,j,k;
    while(~scanf("%lld%lld",&n,&m)){
        for(i = 0;i < n;++  i)
            scanf("%lld",&arr[i]);
        sort(arr,arr+n);
        LL ma = 0,po = 0,num;
        for(i = 0;i < n;++ i){
            for(j = i+1+ma;j < n;++ j){
                if(arr[i]*m >= arr[j]){
                    if(ma < (j-i+1))
                        ma = j - i+1;
                }
                else break;
            }
        }
        printf("%lld\n",ma);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

PAT乙级.1030. 完美数列(25)

1030. 完美数列(25) 题目 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M ...
  • R11happy
  • R11happy
  • 2016年09月05日 21:35
  • 323

pat1030完美数列bug总结,

1030题目主要考虑到的点要多,比如m不一定是从最小的数开始的。 二次循环可以直接从least开始执行。这些都可以提高效率。而这点也是大数出错的根源。 关于效率问题,另写一片//#incl...
  • me4weizhen
  • me4weizhen
  • 2016年01月22日 21:58
  • 632

PAT乙级—1030. 完美数列(25)-native

给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M ...
  • wanmeiwushang
  • wanmeiwushang
  • 2016年05月19日 19:46
  • 1655

PAT(乙级)1020 完美数列(25)

题目来源:http://www.nowcoder.com/pat/6/problem/4056 题目描述 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M ...
  • u014594922
  • u014594922
  • 2016年09月09日 20:18
  • 154

PAT(乙级)1020. 月饼

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库...
  • u012792707
  • u012792707
  • 2016年06月27日 19:28
  • 213

PAT Basic 1020. 月饼 (25)(C语言实现)

题目 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分...
  • Oliver__Lew
  • Oliver__Lew
  • 2017年05月18日 23:45
  • 310

PAT乙级 完美数列(25)

题意: 构造一个完美数列,符合最大值 先用sort快排一下整个序列,之后从最小值开始计算,利用最小值*p这个数值在序列中二分查找,时间复杂度nlogn. #include "iostream" ...
  • djd1234567
  • djd1234567
  • 2015年12月21日 18:36
  • 1037

PAT乙级1030. 完美数列(25)

1030. 完美数列(25) 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: ...
  • wang1997hi
  • wang1997hi
  • 2017年10月31日 14:43
  • 56

PAT乙级1030. 完美数列(25)

题目链接 https://www.patest.cn/contests/pat-b-practise/1030 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M 现在...
  • qq_30138291
  • qq_30138291
  • 2017年12月11日 16:27
  • 23

1030. 完美数列(25)-PAT乙级

题目: 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M ...
  • ZZLCSDN2017
  • ZZLCSDN2017
  • 2017年04月02日 10:54
  • 177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PAT 1020 完美数列(25)(贪心暴力)
举报原因:
原因补充:

(最多只允许输入30个字)