luogu P1012 拼数】的更多相关文章

题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 3 13 312 343 输出样例#1: 34331213 很水的排序2333开始还以为是贪心 #include<…
P1012 拼数 输入输出样例 输入样例 3 13 312 343 输出样例 34331213 注意 当你输入: 6321 32 407 135 13 217 应该输出: 4073232121713513 代码: #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<string> using…
P1012 拼数 标签 字符串 排序 NOIp提高组 1998 云端 难度 普及- 时空限制 1s / 128MB 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1:…
题目链接:https://www.luogu.org/problemnew/show/P1012 题解: 首先,同等长度的数字,用字典序的方法比较大小,和直接比较数字大小是一样的. 其次,对于任意两个数字进行拼接,哪个放在前面哪个放在后面,直接用字符串拼接起来,比较一下两种情况哪个比较大就可以了. 但是,暂时我还没想到怎么证明,在多个数字拼接时,两两比较拼接大小,再加上排序就可以得出正确答案…… AC代码: #include<bits/stdc++.h> using namespace std…
https://www.luogu.org/problemnew/show/P1012 这道水题居然翻车了,还发现不了bug,服气了.并不是空字符一定比不空要好,要取决于替代它的字符的大小.所以还是直接比较两个字符串互相接后的字典序就好了. 错误代码如下: #include<bits/stdc++.h> using namespace std; #define ll long long ]; int n; struct cmp{ bool operator()(string s1,string…
又是大水题... 这一题过水,令人无法接受...... 但是如果我们不知道string的一个神奇的性质的话,就会很难受. 我一开始手写 < 号,但是发现如果 string a 的前一部分恰好是 string b 时,就不好处.于是我跑去看题解,发现大佬们的神奇做法: a + b > b + a 666啊! 下面讲解关于string的 + 和 < 运算符: + : 把两个字符串拼起来. < : 字典序比较. 这两组数据可以卡掉a > b 37 3 30 3 然后我们就水 啊 水…
https://www.luogu.org/problem/show?pid=1012#sub 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 3 13 312…
这是一道字符串的普及—的题. 输入几组数字,怎样组合起来才可以使最后结果最大.一开始这道题类似于那道删数问题,每次删除递增序列的最后一位,达到最小.而这个题我也是想到了贪心做法,于是想逐位判断,让在前面的尾数越大越好,但想了想,不可行.再仔细看题,只要开一个string数组,把他们的字典序相加比较大小即可,因为字符串10+12=1012,所以重载一个cmp,再sort一下就好了. 1.string也是有数组的,之前不知道,, 2.巧妙利用sort和自定义cmp 代码 #include<iostr…
**原题链接** 题目描述 设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入描述: 第一行,一个正整数n. 第二行,n个正整数. 输出描述: 一个正整数,表示最大的整数 分析: 要用一组正整数组成一个最大的多位整数,很自然的想到给这组正整数 按字典序排序,然后按字典序从大到小把这组正整数连接起来. 但,我…
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 3 13 312 343 输出样例#1: 34331213 代码 #include<iostream> #inc…