原题
题目描述
给定000到999之间的n个数字,将它们拼成两个不带前导000的正整数,求两个数的最小积。
样例1
输入

1
4
1 2 2 1

输出

122

样例2
输入

2
5
1 3 2 1 2
3
1 1 0

输出

1223
10

思路
一拍脑袋我们会知道,要使得222个数的成绩最小,则这两个数的差要尽可能大,也就是一个是最小的非000一位数,一个是其他数字组成的大数。
若最小的数字是0:0:0:
则找到比000大的最小的数当做一个数,把另外的数字组成最小的数字相乘。
若最小的数字不是0:0:0:
则找到最小的数当做一个数,把另外的数字组成最小的数字相乘。
代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+5;
int t,n,len,a[maxn],ans[maxn];
void cheng(int k,int &len)//大数乘
{for(int i=1;i<=len;++i) ans[i]*=k;for(int i=1;i<=len;++i) ans[i+1]+=ans[i]/10,ans[i]%=10;while(ans[len+1])len++;
}
int main()
{for(scanf("%d",&t);t--;){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);//排序找最小的数if(a[1]){for(int i=2;i<=n;i++)ans[++len]=a[n-i+2];//倒着存cheng(a[1],len);}else{int x=1,y,z;while(!a[x])x++;//找到比0大的最小数的位置z=x-1;y=a[x];x++;ans[++len]=a[x];//存最高位for(int i=1;i<=z;++i)ans[++len]=0;//存0for(int i=x+1;i<=n;++i)ans[++len]=a[i];//存其他数字int l=1,r=len;while(l<r)swap(ans[l],ans[r]),l++,r--;//倒过来cheng(y,len);}for(int i=len;i>=1;i--)printf("%d",ans[i]),ans[i]=0;printf("\n");len=0;}
}
}

2020牛客暑期多校训练营(第九场) The Crime-solving Plan of Groundhog相关推荐

  1. 2020牛客暑期多校训练营(第九场)E题 Groundhog Chasing Death

    题意 计算 ∏ i = a b ∏ j = c d g c d ( x i , y j ) \prod_{i=a}^{b}\prod_{j=c}^{d}gcd(x^i,y^j) i=a∏b​j=c∏d ...

  2. E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)

    E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...

  3. 2020牛客暑期多校训练营(第六场)

    2020牛客暑期多校训练营(第六场) 额,睡了一下午,直接错过了比赛... 文章目录 A African Sort 题意: 题解: 代码: B Binary Vector C Combination ...

  4. 2020牛客暑期多校训练营(第四场)

    2020牛客暑期多校训练营(第四场) 这场属实有点难受 文章目录 A Ancient Distance B Basic Gcd Problem 题目 代码: C Count New String D ...

  5. 2020牛客暑期多校训练营(第一场)

    文章目录 A B-Suffix Array B Infinite Tree C Domino D Quadratic Form E Counting Spanning Trees F Infinite ...

  6. 2020牛客暑期多校训练营(第二场)

    2020牛客暑期多校训练营(第二场) 最烦英语题 文章目录 A All with Pairs B Boundary C Cover the Tree D Duration E Exclusive OR ...

  7. 2020牛客暑期多校训练营(第七场)J.Pointer Analysis

    2020牛客暑期多校训练营(第七场)J.Pointer Analysis 题目链接 题目描述 Pointer analysis, which aims to figure out which obje ...

  8. 2020牛客暑期多校训练营(第三场)A.Clam and Fish

    2020牛客暑期多校训练营(第三场)A.Clam and Fish 题目链接 题目描述 There is a fishing game as following: The game contains ...

  9. 2020牛客暑期多校训练营(第五场)——E Bogo Sort

    2020牛客暑期多校训练营(第五场)--E Bogo Sort 题目描述 Today Tonnnny the monkey learned a new algorithm called Bogo So ...

  10. 2020牛客暑期多校训练营(第一场)A B-Suffix Array(后缀数组,思维)

    链接:https://ac.nowcoder.com/acm/contest/5666/A 来源:牛客网 题目描述 The BBB-function B(t1t2-tk)=b1b2-bkB(t_1 t ...

最新文章

  1. #!(sha-bang)--脚本的开始
  2. javaweb下载文件
  3. pythonweb服务器怎么让别人访问_Django配置让其他电脑访问网站
  4. Caffe学习:Data
  5. hadoop学习路线
  6. unity3d 动态添加地面贴图 草地
  7. java算法int型整数反转的另类解法
  8. 腾讯云企业网盘正式入驻数字工具箱
  9. java word 模板_java根据模板生成word文件
  10. 第十五章.输入/输出
  11. Linux服务器取证研究,linux系统取证
  12. mysql 提示The maximum column size is 767 bytes.
  13. mp3与aac音频格式的比较
  14. 达立易考教育2023年全真模拟考试盛大开考,是骡子是马溜溜
  15. 游戏充值订单金额修改思路与实践
  16. 外汇局:12月中国国际货物和服务贸易顺差2280亿元
  17. Unity UGUI无限列表(Infinite List)
  18. c语言五子棋怎么判断五子连珠,分享一个 五子棋 输赢 的 判断逻辑。C#脚本
  19. 从“已知”到“可能”
  20. 条码软件如何在条形码下方显示文字信息

热门文章

  1. 安装mysql时一直卡在starting the server这一位置,解决办法
  2. 鱼和熊掌兼得:C++代码在编译时完成白盒测试
  3. 处理器后面的字母含义_CPU后面的数字和字母都是什么意思?全面解答。
  4. 根据旋转矩阵计算角度差
  5. openssl1.1.1下载地址
  6. atmega128 单片机 20以内加减法训练机 做的过程
  7. 爬取豆瓣 TOP250 电影排行榜
  8. 读书有益——》《断舍离·舍·做减法的勇气》
  9. pinctrl学习笔记---描述/获得引脚
  10. esp32测试wifi速率