7. 拼数
创始人
2024-05-29 04:07:34
0次

1 题目描述

拼数

成绩10开启时间2021年09月24日 星期五 18:00
折扣0.8折扣时间2021年11月15日 星期一 00:00
允许迟交否关闭时间2021年11月23日 星期二 00:00

设有 n个正整数 a[1]​…a[n]​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

输入描述

第一行有一个整数,表示数字个数 n (1 ≤ n ≤ 20, 1 ≤ a ≤ 10^9)。

第二行有 n个整数,表示给出的 n个整数 a[i]    

输出描述

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

接下来将由系统输出你的询问记录

当你的调用次数小于例程的2倍时,你将AC此题


预设代码

前置代码

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */  #include  
#include  using namespace std;  
string s[25];  
int n;  int* SpellNum(int );  int cmp(int i, int j) {  if(i <= 0 || i > n || j <= 0 || j > n)  return -2;  return s[i] + s[j] > s[j] + s[i];  
}  int main() {  cin >> n;  for(int i = 1; i <= n; ++i)   cin >> s[i];  int* index = SpellNum(n);  for(int i = 1; i <= n; ++i)   cout << s[index[i]];  cout << endl;  return 0;  
}  /* PRESET CODE END - NEVER TOUCH CODE ABOVE */  
 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 3↵
  2. 13 312 343↵
以文本方式显示
  1. 34331213↵
  2. 3↵
1秒64M0
测试用例 2以文本方式显示
  1. 4↵
  2. 7 13 4 246↵
以文本方式显示
  1. 7424613↵
  2. 6↵
1秒64M0

2 代码

#include  
#include  using namespace std;  
string s[25];  
int n;  int* SpellNum(int );  int cmp(int i, int j) {  if(i <= 0 || i > n || j <= 0 || j > n)  return -2;  // 成立返回1,不成立返回0return s[i] + s[j] > s[j] + s[i];  
}  int main() {  freopen("file in.txt","r",stdin);cin >> n;  for(int i = 1; i <= n; ++i)   cin >> s[i];  int* index = SpellNum(n);  for(int i = 1; i <= n; ++i)   cout << s[index[i]];  cout << endl;  return 0;  
}  // 方法就是把数字做为字符串来排序,排序的比较原则是: 两个数字串A,B,如果AB < BA,则A < B
// 不让访问原数组,那就新建一个数组把原数组的下标保存下来,对原数组的下标进行操作
int *SpellNum(int n){int *index;index = (int*)malloc(sizeof(int)*(n+1)); //下标0的那一位没有使用,所以多申请一个位置	int i,j;int temp;int ans;for(i=1;i<=n;i++){index[i]=i;}for(i=1;ifor(j=i+1;j<=n;j++){ans = cmp(index[i],index[j]);if(ans==-2){exit;}else if(ans){// 如果大于的话,不做任何操作}else{// 如果小于的话,交换位置temp = index[i];index[i]=index[j];index[j]=temp;}		}}return index;
}

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...