zoukankan      html  css  js  c++  java
  • 1030. 完美数列

     题目截图:

     

    思路:

      two pointers,先将数列升序排序,然后查找最长完美数列。详解见另一篇博客

    代码:

     1 /*
     2     1030. 完美数列
     3 */
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <math.h>
     8 #include <stdlib.h>
     9 #include <time.h>
    10 
    11 #define maxn 100002
    12 int num[maxn] = {0};
    13 
    14 int cmp(const void* a, const void* b) {
    15     return *(int*)a-*(int*)b;
    16 }
    17 
    18 int main() {
    19     int N, p, i, j;
    20     scanf("%d %d", &N, &p);
    21     for(i=0; i<N; ++i) {
    22         scanf("%d", &num[i]);
    23     }
    24     // 将数组升序排序 
    25     qsort(num, N, sizeof(int), cmp);
    26     int result = 0;                            // 存储当前求得的最大长度 
    27     for(i=0; i<N; ++i) {                    // 序列开始位置 
    28         for(j=i+result; j<N; ++j) {            // 使用当前最大长度 
    29             if((double)num[j]/num[i]<=p) {
    30                 if(j-i+1>result) {            // 长度更长 
    31                     result = j-i+1;            // 更新长度 
    32                 }
    33             } else {                    
    34                 break;
    35             }
    36         }
    37     }
    38     printf("%d", result);
    39 
    40     return 0;
    41 }
  • 相关阅读:
    sharepoint 2010 资料
    调试 SharePoint 解决方案
    定义不同模板的网站集
    作图工具
    struts2的优点
    get load
    什么是java的事物
    session的实现方式
    final 和static的关系
    各种大神的表单验证 感谢大神的辛苦
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/PAT1030.html
Copyright © 2011-2022 走看看