zoukankan      html  css  js  c++  java
  • poj 1338

    2013-09-08 09:56

    记录数组w[I],代表第I个答案的值

    用三个指针指向W数组,代表当前的W[A2]*2,W[A3]*3,W[A5]*5更新答案

    每次取最小值,然后后移对应指针(可能一次移两个指针),可保证W数组的数不重复且递增

    var
    a2, a3, a5              :longint;
        w                       :array[0..1600] of int64;
        i                       :longint;function min(a,b:int64):int64;begin
        if a>b then min:=b else min:=a;end;begin
        a2:=1; a3:=1; a5:=1;//指针
        w[1]:=1;
        for i:=2 to 1500 do
        begin
            w[i]:=min(w[a2]*2,min(w[a3]*3,w[a5]*5));//更新答案(递推)
            if w[i]=w[a2]*2 then inc(a2);//移指针
            if w[i]=w[a3]*3 then inc(a3);
            if w[i]=w[a5]*5 then inc(a5);
        end;
        read(i);
        while i<>0 do
        begin
            if i<>0 then writeln(w[i]);
            read(i); 
        end;end.
  • 相关阅读:
    Git的环境搭建
    AmazeUI HTML元素
    AmazeUI布局
    AmazeUI基本样式
    Bash简介
    Linux下拷贝目录和删除
    linux下的定时任务
    缓存
    隔离
    DEDECMS使用SQL命令批量替换语句
  • 原文地址:https://www.cnblogs.com/BLADEVIL/p/3433481.html
Copyright © 2011-2022 走看看