| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1105 人关注过本帖
标题:数字积木
只看楼主 加入收藏
Julien
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2014-12-12
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
数字积木
  二、数字积木(brick.pas/c/cpp)
【问题描述】
     小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢?
     你的任务就是读入n个数字积木,求出所能形成的最大数。
【问题输入】
第一行是一个整数n (n≤1000),接下来n行每行是一个正整数。
【问题输出】
     所能形成的最大整数
【样例输入】
3
13
131
343
【样例输出】
34313131
【数据范围】
30%的数据,n≤l0,每个数<103。50%的数据,n≤l00。100%的数据,n≤1000,每个数<10200。

谁能发一下c++的参考程序
搜索更多相关主题的帖子: 突发奇想 正整数 
2015-12-01 13:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
程序代码:
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <string>
using namespace std;

int main( void )
{
    size_t n;
    cin >> n;
    std::vector<std::string> ns;
    std::copy_n( std::istream_iterator<std::string>(cin), n, std::back_inserter(ns) );
    std::sort( std::begin(ns), std::end(ns), [](const std::string& a, const std::string& b){return a+b>b+a;} );
    std::copy( std::begin(ns), std::end(ns), std::ostream_iterator<std::string>(cout,"") );
    return 0;
}
2015-12-01 14:40
Julien
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2014-12-12
收藏
得分:0 
能说一下大概思路吗
2015-12-02 13:00
Julien
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2014-12-12
收藏
得分:0 
二、数字积木(brick.pas/c/cpp)
    算法分析:
    本题每个数都比较大,所以用字符串操作。
    朴素算法是求出所有排列,求出其中能拼成的最大值,这样能拿30分左右。
    一种贪心策略是单纯地比较字符串间的大小,把大的放在前面。但很快就能发现反
例,例如:“131”>“13”,但“13113”<“13131”。那我们再考虑一下拼接后的情况,在操作时,将单纯地比较字符串大小变成比较“拼接”后的字符串大小就可以了。例如:比较131和13,因为“13113”<“13131”,所以13应该比131大,应排在131前面。
    所以只有用一个排序算法,把两个字符串的大小比较改为“拼接”后的字符串大小比
较就行了。
能分析一下吗
2015-12-02 13:36
须臾以南
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2015-12-2
收藏
得分:4 
可以的!!!!!!!
2015-12-02 13:50
须臾以南
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2015-12-2
收藏
得分:0 
用string输入字符串,直接相加两两比较,如果小于就交换两数位置。最后输出
2015-12-02 13:52
Julien
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2014-12-12
收藏
得分:0 
明白了,谢谢
2015-12-02 16:34
快速回复:数字积木
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019068 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved