当前位置: 首页 > news >正文

题解:洛谷 P1012 [NOIP 1998 提高组] 拼数

前言

首先,我们最初的想法一定是输入字符串,然后对字符串进行排序,最后依次输出,于是你获得 $75$ 分。
给出一组自编 hack 数据:

2  
379 3791

如果按刚才的思路输出应该是:

3791379

可是正确输出应该是:

3793791

题目解法

可以看出,即使完全相同的两个字符串,拼凑的方式不同,结果也不同。

假设两个字符串:

  • a = 123
  • b = 456

我们定义加法为拼接,那么:

  • a + b = 123456
  • b + a = 456123

很容易看出 $a+b<b+a$,也能看出当两个字符串 $a,b$ 比大小时,如果 $a+b>b+a$ 说明 $a$ 大,否则说明 $b$ 大(或相等,这里相等的情况算谁大都无所谓)。

所以我们的 cmp 函数需要这么写:

bool cmp(string a,string b)
{return a+b>b+a;
}

最后,从头到尾输出排序好的字符串就结束了。

代码

代码不加注释了,应该能看得懂。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool cmp(string a,string b)
{return a+b>b+a;
}
int main()
{ios::sync_with_stdio(false);//快速输入int n;string s[21];cin>>n;for(int i=0;i<n;i++){cin>>s[i];}sort(s,s+n,cmp);for(int i=0;i<n;i++){cout<<s[i];}return 0;
}
http://www.hskmm.com/?act=detail&tid=20306

相关文章:

  • day 7
  • 完整教程:Python 高效实现 PDF 转 Word:告别手动复制粘贴
  • 深入解析:C# 串口通信全解析:从基础到复杂协议的设计思路
  • P6652 「SWTR-5」String
  • 模拟退火 - 学习笔记
  • Markdown语法入门一:标题,列表,表格与字体
  • 质数筛
  • pnpm 安装后无法使用
  • 数学解题中常见的“漏解”情况分析
  • 图册
  • 简单的Powershell脚本
  • 基于YOLO8+flask+layui的行人跌倒行为检测系统【源码+模型+数据集】 - 详解
  • 环形链表-leetcode
  • [ABC425C] Rotate and Sum Query 题解
  • 线程--基本使用、线程常用方法
  • 酵母表面展示技术:从蛋白分析到多领域应用,解锁可持续发展的生物新工具
  • 9/28数学错题分析
  • linux查找指定字符串的三种方法 - 指南
  • task
  • SQL逐字稿
  • 实用指南:嵌入式面试高频(十二)!!!C++语言(嵌入式八股文,嵌入式面经)c++11新特性
  • 2025 年粒度仪厂家推荐山东耐克特分析仪器,粒度分析仪,喷雾,激光,纳米,在线,图像粒形,干湿两用粒度仪公司推荐
  • 2025年匹克球厂家推荐义乌亿宁体育 ,滚塑匹克球,匹克球网,静音匹克球,LED 发光匹克球,专业比赛匹克球公司推荐
  • 2025 年粒度仪厂家推荐山东耐克特分析仪器,电位仪 / 纳米粒度及 Zeta 电位仪 / Zeta 电位仪公司推荐
  • 2025攻丝机厂家 TOP 企业品牌推荐排行榜,全自动,半自动,转盘,伺服,平推,全自动钻孔,半自动钻孔攻丝机公司推荐
  • 实用指南:微信公众号网页调试, 某讯参数,drviceToken V2
  • 2025 年芝麻灰厂家 TOP 企业品牌推荐排行榜,芝麻灰路沿石,花岗岩石材,火烧板,地铺石,板材,挡车球,桥栏杆,楼梯踏步,门牌石,水篦子公司推荐
  • 2025.9.28
  • 深入解析:宝塔面板搭建RustDesk教程:告别命令行,一键拥有私有远程桌面
  • Windows 安装达梦数据库