if(cnt >= max)//注意判断要放里面——测试点1 max = cnt; } else break; } } cout<< max; }
[]从第i到第j个位置能构成完美数列的最大元素个数 int Max_Per_Array(long a[],int i,int j,long p) { if(a[j] <= p * a[i]){//满足完美数列 return j-i+1; } else{//不满足完美数列 if(a[j - 1] > p * a[i]&&a[j] <= p * a[i + 1]){//最大值前移一位满足而最小...
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。
输出格式: 在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。 输入样例: 10 8 2 3 20 4 5 1 6 7 8 9 输出样例: 8 测试点4:容易超时 测试点5:数据太大,需要long或long long 参考:https://blog.csdn.net/m0_51487301/article/details/119899920 代码:测试点4我的思路通不过,参考给出了满...
更新step的值,step=j-i+1是head和tail之间的距离,因为中间的数字组成的完美数列不可能是最多的所以下一次循环要选择性的跳过。 注意:在我调试的时候,第四个测试点运行超时是因为测试数据太大,所以得加一个break跳过不必要的循环 第五个测试点是因为我的p的数据范围太小,大数据会让p的值溢出,所以改用long long...
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。 输入样例: 10 8 2 3 20 4 5 1 6 7 8 9 1. 2. 输出样例:8 1. 解题思路 测试点 1 2 3 从有序数组0位置开始,得到的完美数列长度 测试点0 5 从每个元素开始的完美长度是不同的,并非从有序数组位置0开始的完美数列长度就是最长完美长...
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。 输入样例: 10 8 2 3 20 4 5 1 6 7 8 9 1. 2. 输出样例: 8注意两点:1. 数据类型不能用int(10的9次方超出了int范围), 不然最后一个测试点过不去2. 在双重循环那需要优化, 不然倒数第二个测试点过不去(时间复杂度过高)优化时, 因...
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行…
2 3 20 4 5 1 6 7 8 9 输出样例: 8 1030 完美数列(25)(25 分)blog.csdn.net/hy971216/article/details/80554897 这是一开始自己写的,当然也有借鉴这位的思想 测试点三是所选的数列中只有一个元素的情况 测试点四超时,所以要改 #include<iostream>#include<iostream>#include<algorithm>#define MAX...
PAT乙级1030 完美数列 题目: 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个...