NC16783 [NOIP1998]拼数】的更多相关文章

NC16783 [NOIP1998]拼数 题目 题目描述 设有 \(n\) 个正整数(\(n ≤ 20\)),将它们联接成一排,组成一个最大的多位整数. 例如:\(n=3\) 时,\(3\) 个整数 \(13\),\(312\) ,\(343\) 联接成的最大整数为:\(34331213\) 又如:$n=4 $ 时,\(4\) 个整数 \(7\) ,\(13\) ,\(4\) ,\(246\) 联接成的最大整数为:\(7424613\) 输入描述 第一行,一个正整数 \(n\) . 第二行,\(…
http://www.luogu.org/problem/show?pid=1012 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 如此的水题居然想错,真是弱成狗... //本来想直接排序下…
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…
(今天yuezhuren大课间放我们出来了……) (另外今天回了两趟初中部) 拼数[传送门] 洛谷算法标签: (然鹅这两个学的都不好,能过真的how strange) 开始的时候没读题啊,直接暴力sort给数据(int型的)排序然后从大到小输出了……(居然还ac了一个点) 然后我去仔细读了题,发现当这个数字首字母越大时(相同的话比下一位),位置越靠前,组成的数就越大,因为字符长度不确定,然后我在想是不是用字符类型的比较好做???? 好了又半途不想写了   直接上代码吧 #include<iost…
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:…
题目描述 Description 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613  输入输出格式 Input/output 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数  输入输出样例 Sample input/output 样例测试点#1 输入样例: 3131…
[题解] 我们要做的就是把这些数排序.排序的时候判断两个数是否交换的方法,就是把这两个数相接形成两个长度相同的数字,比较这两个数字的大小. #include<cstdio> #include<algorithm> #include<cstring> #define N 200010 #define rg register #define LL long long using namespace std; int n,m; ]; inline int read(){ ,f…
题目描述 设有 n 个正整数​ a1-an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数. 输入格式 第一行有一个整数,表示数字个数 n. 第二行有 n 个整数,表示给出的 n 个整数 a_i​. 输出格式 一个正整数,表示最大的整数 输入输出样例 输入 #1 3 13 312 343 输出 #1 34331213 输入 #2 4 7 13 4 246 输出 #2 7424613 说明/提示 对于全部的测试点,保证 1≤n≤20,1≤a_i ≤10^9 . 题目大意:给你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 读入所有数后进行冒泡排序:若(前+后<后+前) 则前后…
题目:https://www.luogu.org/problemnew/show/P1012 今天真是长了见识.这道题做了十几分钟,用模拟愣是调不出来.直到我看了题解——(当场去世)…… 题的意思是n个数拼出一个最大的数,我竟真的傻傻的输进n个数..... 用string 轻松解决!!! 用sort排列,然后直接从1到n输出,秒AC..... 关键是关于string的加法性质:ac+cd=abcd; 所以把cmp写一下就好了: 上代码,一看全明白!!! #include<iostream> #…
又是大水题... 这一题过水,令人无法接受...... 但是如果我们不知道string的一个神奇的性质的话,就会很难受. 我一开始手写 < 号,但是发现如果 string a 的前一部分恰好是 string b 时,就不好处.于是我跑去看题解,发现大佬们的神奇做法: a + b > b + a 666啊! 下面讲解关于string的 + 和 < 运算符: + : 把两个字符串拼起来. < : 字典序比较. 这两组数据可以卡掉a > b 37 3 30 3 然后我们就水 啊 水…
十分蒟蒻...(还是看别人的博才过的...) 题解 #include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;string c[21],b[21];int n;bool cmp(string a,string b)//cmp的核心!!!!!(因为这个一直75分... (不要想着从小到大牌再倒着输出,这不行dei)){return a+b&…
问题: 设有n个正整数,将他们排成一排,组成一个最大的多位整数. INPUT: 第一行,正整数的个数n 第二行,n个正整数 OUTPUT: 一个正整数,表示最大的整数. 输入样例: 3 13 312 343 样例输出: 34331213 思路: 如果我们把每个输入的正整数当作正数来处理的话, 我们会发现我们很难处理. 因为存在情况一个数是另一个数的前缀的情况. 这个时候不知道要比较多少位. 比如说,5个正整数 756  212 2123 21231. 这时就很麻烦. 而如果我们把这些数字当作字符…
这是一道字符串的普及—的题. 输入几组数字,怎样组合起来才可以使最后结果最大.一开始这道题类似于那道删数问题,每次删除递增序列的最后一位,达到最小.而这个题我也是想到了贪心做法,于是想逐位判断,让在前面的尾数越大越好,但想了想,不可行.再仔细看题,只要开一个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…
#include<iostream> #include<algorithm> using namespace std; bool cmp(string b,string a) { return b+a>a+b;}//灵魂在这 int main() { ]; int n; cin>>n; ;i<=n;i++) cin>>a[i]; sort(a+,a+n+,cmp); ;i<=n;i++)cout<<a[i]; } 就是这样看标记…
题目描述 设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213 又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424613 输入输出格式 输入格式: 第一行,一个正整数nn. 第二行,nn个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 复制 3 13 31…
题目链接:https://www.luogu.org/problemnew/show/P1012 题解: 首先,同等长度的数字,用字典序的方法比较大小,和直接比较数字大小是一样的. 其次,对于任意两个数字进行拼接,哪个放在前面哪个放在后面,直接用字符串拼接起来,比较一下两种情况哪个比较大就可以了. 但是,暂时我还没想到怎么证明,在多个数字拼接时,两两比较拼接大小,再加上排序就可以得出正确答案…… AC代码: #include<bits/stdc++.h> using namespace std…
题目描述 设有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 分析:显然,就是字典序最大,利用string排序一下就…
题目描述 设有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<…
题目描述 设有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 [分析]: 首先我们可以证明最大的答案字典序也一定最大…
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…
设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213 又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424613 输入输出格式 输入格式: 第一行,一个正整数nn. 第二行,nn个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 复制 3 13 312 343…
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…
#include<bits/stdc++.h> using namespace std; bool cmp(const string &a,const string &b){ return a+b>b+a; } int main(){ int n; string num[23]; scanf("%d",&n); for(int i=0;i<n;i++){ cin>>num[i]; } sort(num,num + n,cmp)…
题目描述 设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,3个整数13,312,343联接成的最大整数为:3433121334331213 又如:n=4n=4时,4个整数7,13,4,246联接成的最大整数为:74246137424613 输入输出格式 输入格式: 第一行,一个正整数nn. 第二行,nn个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 3 13 312 343 输出样例#1: 343312…
//早起刷题傻一天 题目描述 设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213 又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424613 输入输出格式 输入格式: 第一行,一个正整数nn. 第二行,nn个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: …
T1 进制位 题目大意:自己看吧 首先让我们来看两个引理: 如果有解,则进制一定为\(n - 1\) 如果有解,则字母一定表示\(0\) 至 \(n - 1\) 的数 证明如下: 因为有 \(n - 1\) 个不同的数,所以最少 \(n - 1\) 进制. 假设为 \(n\) 进制,那么一定有一个数没有出现,假设为 \(k\). 若\(k = 0\) 或 \(k = 1\),有 \(1 + (n - 1) = 10\)(\(n\)进制下) ,矛盾. \(1 < k \le n-1\) ,有\(1…
update 10.11 我可能已经刷完大部分了,可是这篇blog我也不想更了 这个人很懒,做了很多题但是不想写题解,也不想更blog,所以这篇blog又咕咕了. 把从 \(1997-2017\) 近20年的提高组复赛题都过一遍. NOIP1997 棋盘问题 (已AC) \(This\) \(is\) \(a\) 暴力 \(problem\). 里面有一个优化,就是非第一行第一列就可以从大到小枚举数字,这样就可以做到最优化第一行第一列一定是最小的. NOIP1998 车站 (已AC) 我们应该秉…