#最大整数 的原理及题解

wangjiajian  •  2年前


``

我本想用暴力枚举每一种连接情况,但是n小于等于100,就是说时间是100的阶乘,有可能会爆。

后来我决定用奇奇怪怪的贪心。先把整数a和b转成字符串,比较先a后b的情况和先b后a的大小。如果前者大,那么就把a放在b前;如果后者大就把b放在a前面。连接完以后,字符串ab就合并为a,再读进来一个b,以此类推,再次拼接。


评论:

代码等会儿发


wangjiajian  •  2年前

嘿呦,电教员,你很勇哦,敢发题解?小心被封号哦


GXR  •  2年前

这不算好吗@观世音菩萨


_JF_  •  2年前

提供思路是没有问题的


_JF_  •  2年前

最快的方法 比较其字典序 在进行排序(ASCLL) 然后在连接即可


_JF_  •  2年前

校领导的代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
  char s[101][30],t1[65],t2[65];
  int n;
  scanf("%d",&n);
  for (int i=1; i<=n; i++)
    scanf("%s",&s[i]);
  for (int i=1; i<n; i++)
    for(int j=1; j<=n-i; j++)
    {
      strcpy(t1,s[j]);
      strcpy(t2,s[j+1]);
      strcat(t1,s[j+1]);
      strcat(t2,s[j]);
      if(strcmp(t1,t2)<0)
        swap(s[j],s[j+1]);
    }
  for(int i=1; i<=n; ++i)
    printf("%s",s[i]);
  printf("\n");
  return 0;
}

杯总  •  2年前

有必要吗


_JF_  •  2年前

贪心


_JF_  •  2年前