完美数列(PAT-1030)
来源:互联网 发布:网络营销策划书的作用 编辑:程序博客网 时间:2024/05/22 11:35
1030. 完美数列(25)
时间限制
300 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CAO, Peng
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。
输入格式:
输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数不超过109。
输出格式:
在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。
输入样例:10 82 3 20 4 5 1 6 7 8 9输出样例:
8
解题思路:
一开始还想用bfs写。。后来反应过来想复杂了。
sort排序,定义 L 记录长度,如果有更长的长度更新L,循环判断时从L开始,如代码里所示。
这道题一定是两层循环的判断,但是其中一个测试点不是超时就是超内存,所以在选择循环方式时,一定要判断该模式是否有利于剪枝。
代码如下:
#include<stdio.h>#include<vector>#include<algorithm>#include<queue>using namespace std;vector<int>v;long long n,p,k;int check();int main(){scanf("%d%d",&n,&p);for(int i=0 ; i<n ; i++){scanf("%lld",&k);v.push_back(k);}sort(v.begin(),v.end());printf("%d\n",check());return 0;} int check(){int l = 0;for(int i=0 ; i<n ; i++){for(int j=i+l-1 ; j<n ; j++){if(v[j]>v[i]*p) break;if(j-i+1>l) l=j-i+1;}}return l;}
点击打开链接
阅读全文
0 0
- 完美数列(PAT-1030)
- PAT 1030完美数列
- PAT 1030完美数列
- PAT 1030 完美数列(25)
- PAT(Python)-1030:完美数列(25)
- PAT乙级1030 完美数列
- Pat(Basic Level)Practice--1030(完美数列)
- PAT(basic level) 1030 完美数列(25)
- PAT 乙等 1030 完美数列
- PAT(乙级)1020 完美数列(25)
- PAT 乙级 1030.完美数列(25)
- pat 1030. 完美数列
- PAT B1030. 完美数列
- 【PAT】1030. 完美数列(25)
- PAT乙级 完美数列(25)
- PAT--完美数列-快速搜索
- PAT 乙级 1030.完美数列
- PAT-B 1030. 完美数列
- TCP粘包问题分析和解决
- elasticsearch centos7集群部署案例
- bzoj 1458(最小割)
- 测试用例编写(功能测试框架)
- leetcode 32 Longest Valid Parentheses
- 完美数列(PAT-1030)
- Android一个apk多个入口
- 资讯精选 | 系统更新不及时 87%的Android设备易受攻击
- java的设计模式---单例模式
- FastDFS_5.0_+_nginx_+_cache_集群安装配置
- 读取web应用的properties文件方法
- android 自定义控件样式点击效果实现
- Java多线程--ExecutorService的使用
- Ubuntu 无法使用 root 用户进行 SSH 登录