洛谷P1012 拼数 【题解】
题目描述
设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
输入描述:
第一行,一个正整数n。
第二行,n个正整数。
输出描述:
一个正整数,表示最大的整数
分析:
要用一组正整数组成一个最大的多位整数,很自然的想到给这组正整数
按字典序排序,然后按字典序从大到小把这组正整数连接起来。
但,我们来看这么一组数据:30 300。
它们可以组成:
30300、30030
两个数字。
显然:
30300>30030 \\
X(300)>X(30)
\end{cases}
\]
其中X(n)为表示字典序大小的函数。
这和我们直觉上的大字典序在前,后链接小字典序所组合多位整数更大的判断不同。
所以,我们不能直接比较两个数字典序就的大小,而是要比较两个数前后放置组成的数是否比较大。
即:
\]
其中,F(x)为两正整数组合后的数值大小,A、B为正整数。
代码
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string a[40];
bool cmp(const string &a,const string &b){
return a+b<b+a;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n,cmp);
string s;
for(int i=n-1;~i;i--)s+=a[i];
cout<<s<<endl;
return 0;
}
洛谷P1012 拼数 【题解】的更多相关文章
- 洛谷 P1012 拼数
P1012 拼数 标签 字符串 排序 NOIp提高组 1998 云端 难度 普及- 时空限制 1s / 128MB 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例 ...
- 洛谷P1012 拼数 string
又是大水题... 这一题过水,令人无法接受...... 但是如果我们不知道string的一个神奇的性质的话,就会很难受. 我一开始手写 < 号,但是发现如果 string a 的前一部分恰好是 ...
- 洛谷 P1012 拼数 Label:续命模拟QAQ
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...
- 洛谷 - P1012 - 拼数 - 排序
https://www.luogu.org/problemnew/show/P1012 这道水题居然翻车了,还发现不了bug,服气了.并不是空字符一定比不空要好,要取决于替代它的字符的大小.所以还是直 ...
- 洛谷P1012 拼数
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...
- 洛谷 P1012 拼数 [字符串]
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...
- [NOIP1998] 提高组 洛谷P1012 拼数
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...
- 洛谷P1012 拼数【字符串+排序】
设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331 ...
- 洛谷——P1012 拼数
https://www.luogu.org/problem/show?pid=1012#sub 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整 ...
随机推荐
- 【转载】皇 家 国 际 开 户图像的插值算法18O88O49999
插值的定义: 设函数y=f(x)在区间[a,b]上有定义,且已知在点a≤x0<x1<…<xn≤b上的值为y0,y1,…,yn,若存在简单函数P(x)使得 P(xi)=yi (i=0, ...
- [Abp vNext 入坑分享] - 6.完整接入swagger
前言 由于最近一直在修改一下排版,同时找了非技术的朋友帮忙看一下排版的问题,现在已经基本上确定了排版和样式了.更新可以恢复正常了. 作为一个写前端代码基本只写js不写css的开发,搞排版真的头疼..各 ...
- windows假死原因调查
0. 现象 windows假死了,键盘功能正常,就是画面卡住不动了. 1. 看log linux下面很容易通过命令dmesg和/var/log/message来看日志. 但是windows就懵逼了,不 ...
- P2756 飞行员配对方案问题 网络流
P2756 飞行员配对方案问题 #include <bits/stdc++.h> using namespace std; , inf = 0x3f3f3f; struct Edge { ...
- Django操作cookie
浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.g ...
- Netty框架问题记录1--多线程下批量发送消息导致消息被覆盖
业务背景 项目是基于Netty实现的实时课堂项目,课堂中老师需要对试卷进行讲解,则老师向服务器发送一个打开试卷信息的请求,服务器获取试卷信息,将试卷信息发送给所有的客户端(学生和老师). 发送给学生的 ...
- css实现手机端导航栏左右滑动
<html> <head> <meta charset="utf-8"> <meta name="viewport" ...
- tp5增删改查基本操作
//插入数据 $res = Db::execute('insert into phptab(info) values("小张")'); dump($res); //修改数据 $re ...
- 解决python引包错误
# coding=utf8# date = 2019/12/23 19:54# 清白丶之年__照林""" # Solve Import Lib Error Add Som ...
- Android系统签名简介
apk的签名,简单说开发者可以通过签名 对应用进行标识和更新.包名在一个设备上是唯一的,这样可以避免被相同包名应用随意覆盖安装.这是一个非常重要的安全功能.系统中的签名文件,也是对系统中应用进行签名, ...