zoukankan      html  css  js  c++  java
  • 1030 完美数列 (25 分)

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

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

    输入格式:
    输入第一行给出两个正整数 N 和 p,其中 N(≤10
    5
    )是输入的正整数的个数,p(≤10
    9
    )是给定的参数。第二行给出 N 个正整数,每个数不超过 10
    9

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

    输入样例:
    10 8
    2 3 20 4 5 1 6 7 8 9
    结尾无空行
    输出样例:
    8
    结尾无空行

    我代码的运行结果

    在这里插入图片描述

    我的思路:

    就先赋值再说 不等式成立结果自然就加1
    否则就返回赋值前的temp

    我的代码

    #include<iostream>
    using namespace std;
    int main()
    {
        int N,P;cin>>N>>P;
        int a[N],b[N];
        int max=0,min=10000000;
        int result=0;
        for(int i=0;i<N;i++)
        {
            cin>>a[i];
            int temp1=max;
            int temp2=min;
        if(a[i]>max) max=a[i];
        if(a[i]<min) min=a[i];
            if(max<=min*P) result++;
            else
            {
                if(max==a[i]) max=temp1;
                if(min==a[i]) min=temp2;
            }
        }
        cout<<result;
    }
    

    另一种思路:

    类似女神的那种排序 具体解析在下面代码中

    #include<iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;
    int main()
    {
       int n;long long p;cin>>n>>p;
        vector<int> v(n);
        for(int i=0;i<n;i++)
            cin>>v[i];
        sort(v.begin(),v.end());//排好序
        int result=0,temp=0;//当前结果和最小与最大的跨度
        for(int i=0;i<n;i++)//先锚定最小值
        {
            for(int j=i+result;j<n;j++)//开始移动最大值的指向 result开始为0
            {
                if(v[j]<=v[i]*p) //如果不等式成立
                {
                    temp=j-i+1;//长度+1 说明最大值符合 最小值不变 最大值往+1位
                    
                        result=temp;
                }
                else break;
            }
        }
        cout<<result;
    }
    
  • 相关阅读:
    《构建之法》阅读笔记07
    学习进度条——第六周
    《构建之法》阅读笔记06
    团队开发
    《构建之法》阅读笔记05
    数组3——返回二维数组中最大联通子数组的和
    学习进度条——第五周
    坯布检验管控系统
    DateTime日期格式转换,不受系统格式的影响
    多层下firebird自增长字段的处理
  • 原文地址:https://www.cnblogs.com/most-silence/p/15495366.html
Copyright © 2011-2022 走看看