zoukankan      html  css  js  c++  java
  • nyoj 448 寻找最大数(贪心专题)

    寻找最大数

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
     
    描述

    请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,

    比如当n=92081346718538,m=10时,则新的最大数是9888

     
    输入
    第一行输入一个正整数T,表示有T组测试数据
    每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)
    输出
    每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数
    样例输入
    2
    92081346718538 10
    1008908 5
    样例输出
    9888
    98
    来源
    第六届itat复赛B卷2题改编
    上传者


    #include<stdio.h>
    #include<string.h>
    char a[310];
    int main()
    {
        int t,n;
        int sh,i,j,len;
        char max;
        int k;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%s",a);
            scanf("%d",&n);
            len=strlen(a);
            sh=len-n;
            k=-1;
            for(i=0;i<sh;i++)
            {
                max=0;
                for(j=k+1;j<=n+i;j++)
                {
                    if(a[j]>max)
                    {
                        max=a[j];
                        k=j;
                    }
                }
                a[i]=max;
            }
            for(i=0;i<sh;i++)
            printf("%c",a[i]);
            printf("
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    vitual box 虚拟机调整磁盘大小 resize partiton of vitual os
    单向链表逆转
    搭建公司的React开发环境
    2018 ICPC 沈阳网络预赛 Fantastic Graph (优先队列)
    背包问题初探
    HDU 2588 GCD (欧拉函数)
    ZOJ
    ZOJ
    ZOJ
    HDU
  • 原文地址:https://www.cnblogs.com/asd1234/p/3386673.html
Copyright © 2011-2022 走看看