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

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

【NOIP1998提高组】拼数 题解

题目描述

设有 n 个正整数,请将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

输入格式

  • 第一行:数字个数 n
  • 第二行:n 个整数

输出格式

  • 一个正整数,表示最大的整数

解题思路

问题难点

这道题看起来简单,但其实暗藏玄机。如果直接按数字大小降序排列,会出现问题:

举个栗子

  • 数字:32 和 321
  • 按数值排序:32 > 321
  • 拼接结果:32321
  • 但正确答案应该是:32132

核心思想

不能单纯比较数字大小,而应该比较两种拼接方式的结果


算法设计

关键技巧

  1. 将数字转为字符串 - 方便拼接和比较
  2. 自定义排序规则 - 比较 a+bb+a 的大小
  3. 贪心思想 - 每次选择能使结果最大的拼接方式

比较规则详解

cpp
// 对于两个字符串a和b
// 如果 a+b > b+a,则a应该排在b前面
// 否则b排在a前面

#include <bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){return a+b>b+a;
}
int main (){int n;string a[25];cin>>n;for(int i = 0; i < n; i++) cin>>a[i];sort(a,a+n,cmp);for(int i = 0; i < n; i++) cout<<a[i];return 0;
}
http://www.jsqmd.com/news/418240/

相关文章:

  • Qt 的 .ui (XML) 文件和 WPF 的 .xaml (XML) 文件
  • CompletableFuture 完全指南:定义、使用、场景与实战
  • 深度学习--卷积神经网络之迁移学习ResNet
  • MSYS 环境下 GCC 启用本地化支持
  • Python基于Vue的游戏创意工坊与推广平台的设计与实现 django flask pycharm
  • AI原生应用领域多轮对话在游戏中的创新玩法设计
  • ‌2026年软件测试热度制高点:KubeVirt混合快照管理的实战指南
  • Python基于Vue的甜品店管理系统 django flask pycharm
  • 深度学习--卷积神经网络之调整学习率
  • go基础之逻辑运算与条件判断(中)
  • WPF 的 DPI 机制
  • AI Agent框架探秘:拆解 OpenHands(9)--- AgentController
  • 《白色相簿2》《一泊二日の凯旋》听后感
  • Windows 下 DPI 渲染
  • 一文看透!AI应用架构师在智能金融系统设计的策略布局
  • 一天一个开源项目(第35篇):GitHub Store - 跨平台的 GitHub Releases 应用商店
  • 开工有礼!获悉Bonree ONE新动态,申请试用领“小睿”新周边!
  • python基于 flask 的流浪动物收养系统设计与开发-vue pycharm django
  • 电脑蓝屏故障与swkb.sys文件问题的解决指南
  • [豪の算法奇妙冒险] 代码随想录算法训练营第四十八天 | 739-每日温度、496-下一个更大元素Ⅰ、503-下一个更大元素Ⅱ
  • 告别JSON!Anthropic发布Tool Calling 2.0,Agent上下文消耗骤降80%
  • 【PowerBI专栏】PowerBI的数据保留与删除操作
  • 杭州脱发自救指南:植发还是纹发?看这篇就懂! - 品牌测评鉴赏家
  • 杭州植发机构大揭秘:脱发星人的逆袭指南 - 品牌测评鉴赏家
  • 【数据分析】python探究云量变化对植被生产力的影响
  • 2026年专业深度测评:中国排名前5的geo优化公司权威榜单 - 电商资讯
  • 广州十大植发机构推荐✅美发博主实测!脱发星人避坑不花冤枉钱 - 品牌测评鉴赏家
  • glTF/glb:现在与未来
  • 2026年专业深度测评:中国排名前五的geo优化公司权威榜单 - 电商资讯
  • python+flask的药膳食谱管理系统-vue pycharm django