zoukankan      html  css  js  c++  java
  • 集合删数

    描述:
    一个集合有如下元素:1 是集合元素;若 P 是集合的元素,则 2 * P +1,4*P+5 也是集
    合的元素,取出此集合中最小的 K 个元素,按从小到大的顺序组合成一个多位数,现要求
    从中删除 M 个数位上的数字,使得剩下的数字最大,编程输出删除前和删除后的多位数字。
    注:不存在所有数被删除的情况`
    输入格式:
    输入的仅一行,K,M 的值,K,M 均小于等于 30000。
    输出格式:
    输出为两行,第一行为删除前的数字,第二行为删除后的数字。
    样例输入:
    5 4
    样例输出:
    137915
    95

    program number;
    
    (**
    Prob=number
    Date=2012/10/17
    Author=HT
    **)
    
    Const
     maxn=4232447;
    
    Var
     ct,i,n,k,m,j,q,ct9,maxi,max9:longint;
     v:array[0..maxn] of boolean;
     a,pre,next:array[0..30001] of longint;
     f:ansistring;
     s:string;
    
    Procedure fopen;
      begin
      assign(input,'number.in');
      assign(output,'number.out');
      reset(input);
      rewrite(output);
    end;
    
    Procedure fclose;
      begin
      close(input);
      close(output);
    end;
    
    Procedure print;
    var
     i:longint;
      begin
      writeln(f);
      fclose;
      halt;
    end;
    
      begin
      fopen;
    
      fillchar(v,sizeof(v),false);
      v[1]:=true;
    
      for i:=1 to maxn do
        if v[i] then
          begin
          if 2*i+1<=maxn then v[2*i+1]:=true;
          if 4*i+5<=maxn then v[4*i+5]:=true;
        end;
    
      f:='';
      ct:=0;
      for i:=1 to maxn do
        if v[i] then
          begin
          inc(ct);
          a[ct]:=i;
        end;
    
      readln(k,m);
      for i:=1 to k do
        begin
        str(a[i],s);
        f:=f+s;
      end;
    
      writeln(f);
    
      if m=0 then print;
    
      ct9:=0;
      maxi:=0;
      max9:=0;
      for i:=1 to length(f) do
        if f[i]='9' then
          begin
          inc(ct9);
          if i-ct9<=m then
            begin
            maxi:=i;
            max9:=ct9;
          end;
        end;
      for i:=1 to max9 do write('9');
    
      delete(f,1,maxi);
      q:=m-maxi+max9;   ct:=0;
      f:=f+':';
    
    
        repeat
        dec(q);
        i:=1;
        while f[i]>=f[i+1] do inc(i);
        delete(f,i,1);
      until q=0;
    
      delete(f,length(f),1);
    
      writeln(f);
    
      fclose;
    
    end.
    
  • 相关阅读:
    【转】常用插件的使用—grunt入门指南(上)
    基于Cordova的android项目入门
    【转】隐藏元素的子元素隐藏无效
    【转】IE7以下绝对定位被某元素遮挡
    关于“No projects are found to import”的解决方法
    【转】IE6中a标签触发图片和ajax请求被abort
    JS小笔记
    mysql删除重复数据
    国内优秀的团队技术博客
    mysql中的union和order by、limit
  • 原文地址:https://www.cnblogs.com/htfy/p/2728547.html
Copyright © 2011-2022 走看看