• 寻找最大数


    题目描述

    请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,比如当n=92081346718538,m=10时,则新的最大数是9888

    输入

    第一行输入一个正整数T,表示有T组测试数据
    每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)

    输出

    每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数

    样例输入

    2
    92081346718538 10
    1008908 5

    样例输出

    9888
    98
     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 typedef pair<int,int> Group;
     7 Group group[105],copy_group[105];
     8 
     9 int main(void){
    10     int n;
    11     scanf("%d",&n);
    12 
    13     while(n--){
    14         getchar();
    15         int i = 0;
    16         int m;
    17         char t;
    18         do{
    19             t = getchar();
    20             if(t == ' ')
    21                 break;
    22             group[i].first = (int)(t - 48);
    23             group[i].second = i;
    24             i++;
    25         }while(1);
    26         sort(group,group + i + 1);
    27 
    28         scanf("%d",&m);
    29         for(int j = m + 1; j < i + 1; j++){
    30             copy_group[j - m - 1].first = group[j].second;
    31             copy_group[j - m - 1].second = group[j].first;
    32         }
    33         sort(copy_group,copy_group + i - m);
    34 
    35         for(int k = 0; k < i - m; k++)
    36             printf("%d",copy_group[k].second);
    37         printf("
    ");
    38     }
    39     return 0;
    40 }
     
     
  • 相关阅读:
    中文词频统计
    复合数据类型,英文词频统计
    hadoop 综合大作业
    分布式并行计算MapReduce
    分布式文件系统HDFS 练习
    安装关系型数据库MySQL 安装大数据处理框架Hadoop
    爬虫综合大作业
    爬取全部的校园新闻
    获取一篇新闻的全部信息
    理解爬虫原理
  • 原文地址:https://www.cnblogs.com/yfs123456/p/5423926.html
Copyright © 2020-2023  润新知