首页 > 其他分享 >P1012 [NOIP1998 提高组] 拼数

P1012 [NOIP1998 提高组] 拼数

时间:2023-08-18 17:34:23浏览次数:42  
标签:const string 拼数 int P1012 NOIP1998

 

题解:

  这道题最大的坑:32 和 321,32321 > 32132 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 string a[25];
 4 bool cmp(const string &a, const string &b)
 5 {
 6     return (a + b > b + a); //这里太妙了
 7 }
 8 int main()
 9 {
10     int n;
11     cin >> n;
12     for (int i = 1; i <= n; ++i)
13         cin >> a[i];
14     sort(a + 1, a + 1 + n, cmp);
15     for (int i = 1; i <= n; ++i)
16         cout << a[i];
17 }

 

标签:const,string,拼数,int,P1012,NOIP1998
From: https://www.cnblogs.com/nijigasaki14/p/17641126.html

相关文章

  • 拼数
    拼数洛谷题目描述设有\(n\)个正整数\(a_1\dotsa_n\),将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。输入格式第一行有一个整数,表示数字个数\(n\)。第二行有\(n\)个整数,表示给出的\(n\)个整数\(a_i\)。输出格式一个正整数,表示最大的整数样例输入3......
  • w2 P1008 [NOIP1998 普及组] 三连击
      主要思路:构造一个judge函数,判断是否1-9都出现了。由于三位数范围为123-987,但因为要求三个数字比例为1:2:3,所以在遍历时的范围是123-987/3。遍历范围内的每一个整数x,并判断2x,3x是否满足judge函数,满足则输出这三个数,否则继续遍历。代码如下:#include<iostream>usingnamespac......
  • P1008 [NOIP1998 普及组] 三连击
    置顶题解暴力,加简化的判断,数学原理,2个集合内所有数相加相乘结果一样,2个集合的内容一样(没错我自己编得,灵感并不是我自己的,感谢帮我的大大)置顶的题解中的数学原理应该是......
  • P1012 [NOIP1998 提高组] 拼数
    P1012[NOIP1998提高组]拼数#include<stdio.h>#include<stdlib.h>#include<string.h>#defineLENGTH11intminn(inta,intb){returna<b?a:b;}......
  • 计蒜客 - T2144 拼数
    计蒜客-T2144拼数题解:把所有数字看成字符串,但是难道直接降序排就结束了嘛,不是的,我们来看一个反例:31312虽然312>31但是明显31312>31231,所以我们不能简单的排序,我......
  • 洛谷刷题_P1009 [NOIP1998 普及组] 阶乘之和
    题目P1009[NOIP1998普及组]阶乘之和题目链接https://www.luogu.com.cn/problem/P1009知识点求阶乘正常做法:#include<stdio.h>longlongjiecheng(longlongn)......
  • P1008 [NOIP1998 普及组] 三连击
    P1008[NOIP1998普及组]三连击 题目描述:将1,2,…,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。这道......
  • [NOIP1998 普及组] 三连击
    生成九位一到九的全排列,按题目分割、过滤#include<iostream>#include<vector>#include<algorithm>boolvis[20];intqueue[50];intanswers[500];intcnt=0;void......
  • P1008 [NOIP1998 普及组] 三连击
    P1008[NOIP1998普及组]三连击分析:根据题意,有1-9这9个数要分成三组组成三个三位数,意味着这9个数只能出现一次,且三个三位数的比例为1:2:3,由此可以得知这三个数中最小的那......
  • [NOIP1998 普及组] 三连击
    [NOIP1998普及组]三连击思路:本题可以运用暴力枚举法,因为题目中有9个数字,所组成的3个三位数a,b,c的各个位数上的数的乘积与这已知的9个数的乘积相等,并且b=2*a,c=3*a。从能......