zoukankan      html  css  js  c++  java
  • 【codevs】1860 最大数

    1860 最大数

     
     
    题目描述 Description

      设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

    输入描述 Input Description

      第一行一个正整数n。

      第二行n个正整数,空格隔开。

    输出描述 Output Description

      连接成的多位数。

    样例输入 Sample Input

    Sample 1:

    3

    13 312 343

    Sample 2:

    4

    7 13 4 246

    样例输出 Sample Output

    Sample 1:

    34331213

    Sample 2:

    7424613

    数据范围及提示 Data Size & Hint

    n≤20

    题意:第一行输入N,然后输入N个数。让你组合这些数字,输出最大值;

    主要还是在于判断,比较a,b的位置,判断方法为a+b的组合数>b+a的组合数:

    采用了优先队列+贪心:

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <string>
     4 #include <queue>
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <stdlib.h>
     8 using namespace std;
     9 struct node
    10 {
    11     int Len;
    12     int n;
    13     friend bool operator <(node a,node b)
    14     {
    15         int Len1,Len2,j,i;
    16         for(i=0,Len1=1;i<a.Len;i++)Len1*=10;
    17         for(i=0,Len2=1;i<b.Len;i++)Len2*=10;
    18         return a.n*Len2+b.n<b.n*Len1+a.n;
    19     }
    20 };
    21 int main()
    22 {
    23     int N,i;
    24     int Num[10086];
    25     while(scanf("%d",&N)!=EOF)
    26     {
    27         priority_queue<node>ID;
    28         node num;
    29         int sign,j;
    30         for(i=0;i<N;i++)
    31         {
    32             scanf("%d",&num.n);
    33             j=num.n;sign=0;
    34             while(j)
    35             {
    36                 sign++;
    37                 j/=10;
    38             }
    39             num.Len=sign;
    40             ID.push(num);
    41         }
    42         for(i=0;i<N;i++)
    43         {
    44             printf("%d",ID.top().n);
    45             ID.pop();
    46         }putchar(10);
    47     }
    48     return 0;
    49 }
    View Code
     
    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    Effective JavaScript Item 40 避免继承标准类型
    基于express+redis高速实现实时在线用户数统计
    HDOJ 4009 Transfer water 最小树形图
    iOS Sprite Kit教程之xcode安装以及苹果帐号绑定
    Swift2.0语言教程之类的嵌套与可选链接
    Swift2.0语言教程之下标脚本
    Swift2.0语言教程之类的方法
    Swift2.0语言教程之类的属性
    Swift2.0语言教程之闭包
    Swift2.0语言教程之函数嵌套调用形式
  • 原文地址:https://www.cnblogs.com/Wurq/p/4493462.html
Copyright © 2011-2022 走看看