zoukankan      html  css  js  c++  java
  • UVa 10905

      题目大意:给n个正整数,对这n个数进行拼接,共有n!种方案(在n个数互不相同的情况下),找出其中最大的拼接数。如123,124,结果为124123。

      开始考虑用字典序,不过这在两个数长度相同时正确,在长度不同时就出问题了,于是各种纠结...后来看别人代码,发现直接把两个数按不同方案拼接再比较就行了,直接根据结果进行判定,而不是分析每个数,是个好方法!排完序后按从大到小的顺序输出就行了,这其中含有贪心的思想。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <string>
     4 #include <algorithm>
     5 using namespace std;
     6 #define MAXN 50+5
     7 
     8 string num[MAXN];
     9 
    10 bool cmp(const string a, const string b)
    11 {
    12     string s1 = a+b, s2 = b+a;
    13     return s1 > s2;
    14 }
    15 
    16 int main()
    17 {
    18 #ifdef LOCAL
    19     freopen("in", "r", stdin);
    20 #endif
    21     int n;
    22     while (cin >> n && n)
    23     {
    24         for (int i = 0; i < n; i++)
    25             cin >> num[i];
    26         sort(num, num+n, cmp);
    27         for (int i = 0; i < n; i++)
    28             cout << num[i];
    29         cout << endl;
    30     }
    31     return 0;
    32 }
    View Code

      记得以前看过这个故事,今天又看到了:某企业引进一条香皂包装生产线,结果发现经常有空盒流过。厂长请一个博士后花了200万设计出了自动分检系统,一乡镇企业遇到了同样问题,农民工花90元买一大电风扇放在生产线旁,有空盒经过便被吹走。具体到这道题中如何决定把哪个数放到前面,首先我就想到了去分析,结果分析了半天也没分析出个所以然,还是直接看结果来的简单实用啊。。。当然,分析同样重要,而高手应该就是知道在什么情况下用那种方法更简单有效,KISS。      -- 2013.7.26

  • 相关阅读:
    新手入门:python的pip安装(二)
    新手入门:python的安装(一)
    python解释器和环境安装
    Python基础入门总结
    Python环境搭建教程(windows10)
    漏洞重温之sql注入(三)
    漏洞重温之sql注入(二)
    漏洞重温之sql注入(一)
    漏洞重温之文件上传(FUZZ)
    漏洞重温之文件上传(总结)
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3203458.html
Copyright © 2011-2022 走看看