zoukankan      html  css  js  c++  java
  • Humble Numbers USCAO chapter 3.1

     ...目测我自己写坑定超时,就去NOCOW看了下,题解,官方是每个质数与已有的humble想乘取大于最大humble的最小数即是新的最大humble,

    然后我就写了个个,开始嫌麻烦用set存,超时的飞起。然后全部改成数组,结果case 6还是超时,想了半天感觉和别人的题解也没啥差别,为什么运行时间差这么多

    后来试着把69行的循环初始条件改成i=0,改成i=1,瞬间过了....后来一想确实i=0 没用啊,而且case 6求第100000个,白白循环100000次....

     1 /*
     2 
     3 ID: hubiao cave
     4 
     5 PROG: humble
     6 
     7 LANG: C++
     8 
     9 */
    10 
    11 
    12 
    13 
    14 #include<iostream>
    15 
    16 #include<fstream>
    17 #include<algorithm>
    18 #include<set>
    19 #include<cstring>
    20 
    21 using namespace std;
    22 
    23 
    24 
    25 
    26 int main()
    27 
    28 {
    29 
    30     ifstream fin("humble.in");
    31     ofstream fout("humble.out");
    32     int prim[102];
    33     int humble[100002];
    34     
    35     int more[102];
    36 
    37     memset(humble,0,100002*4);
    38     memset(prim,0,102*4);
    39 
    40 
    41     int lastInd[102];
    42     for(int i=0;i<102;i++)
    43         lastInd[i]=0;
    44     
    45     int cnt,number,temp;
    46     int hlen=0;
    47     fin>>cnt>>number;
    48     for(int i=0;i<cnt;++i)
    49     {
    50         fin>>temp;
    51         prim[i]=temp;
    52     }
    53     prim[cnt]=1;
    54     sort(prim,prim+cnt+1);
    55     humble[0]=1;
    56     hlen++;
    57 
    58 
    59 
    60     while(hlen<=number)
    61     {
    62 
    63         int lasthumber=humble[hlen-1];
    64         int cnt1=0;    
    65         int* pmin=0;
    66         int mcnt=0;
    67 
    68 
    69         for(int i=1;i<=cnt;i++)
    70         {
    71 
    72             for(int j=lastInd[cnt1];j<hlen;j++)
    73             {
    74                 if(prim[i]*humble[j]>lasthumber)
    75                 {
    76                     more[mcnt++]=prim[i]*humble[j];
    77                     lastInd[cnt1]=j;
    78                     break;
    79                 }
    80                 
    81             }
    82                 cnt1++;
    83         }
    84 
    85         pmin=min_element(more,more+mcnt);
    86         humble[hlen++]=*pmin;    
    87 
    88     }
    89 
    90     fout<<humble[hlen-1]<<endl;
    91 
    92     return 0;
    93 
    94 
    95 }
  • 相关阅读:
    <11>改变图像的尺寸,方便上传服务器
    <10>获取当前时间
    <09>获得字符串的size
    <08>时间戳的转换
    <07>手机号码验证
    <06>邮箱的验证
    <05>判断字符串是否为空
    WKWebView的一些知识
    objc_setAssociatedObject 使用
    linker command failed with exit code 1 (use -v to see invocation) 编译报错原因
  • 原文地址:https://www.cnblogs.com/cavehubiao/p/3337832.html
Copyright © 2011-2022 走看看