2020牛客暑期多校训练营(第九场) The Crime-solving Plan of Groundhog
原题
题目描述
给定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相关推荐
- 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∏bj=c∏d ...
- E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)
E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...
- 2020牛客暑期多校训练营(第六场)
2020牛客暑期多校训练营(第六场) 额,睡了一下午,直接错过了比赛... 文章目录 A African Sort 题意: 题解: 代码: B Binary Vector C Combination ...
- 2020牛客暑期多校训练营(第四场)
2020牛客暑期多校训练营(第四场) 这场属实有点难受 文章目录 A Ancient Distance B Basic Gcd Problem 题目 代码: C Count New String D ...
- 2020牛客暑期多校训练营(第一场)
文章目录 A B-Suffix Array B Infinite Tree C Domino D Quadratic Form E Counting Spanning Trees F Infinite ...
- 2020牛客暑期多校训练营(第二场)
2020牛客暑期多校训练营(第二场) 最烦英语题 文章目录 A All with Pairs B Boundary C Cover the Tree D Duration E Exclusive OR ...
- 2020牛客暑期多校训练营(第七场)J.Pointer Analysis
2020牛客暑期多校训练营(第七场)J.Pointer Analysis 题目链接 题目描述 Pointer analysis, which aims to figure out which obje ...
- 2020牛客暑期多校训练营(第三场)A.Clam and Fish
2020牛客暑期多校训练营(第三场)A.Clam and Fish 题目链接 题目描述 There is a fishing game as following: The game contains ...
- 2020牛客暑期多校训练营(第五场)——E Bogo Sort
2020牛客暑期多校训练营(第五场)--E Bogo Sort 题目描述 Today Tonnnny the monkey learned a new algorithm called Bogo So ...
- 2020牛客暑期多校训练营(第一场)A B-Suffix Array(后缀数组,思维)
链接:https://ac.nowcoder.com/acm/contest/5666/A 来源:牛客网 题目描述 The BBB-function B(t1t2-tk)=b1b2-bkB(t_1 t ...
最新文章
- #!(sha-bang)--脚本的开始
- javaweb下载文件
- pythonweb服务器怎么让别人访问_Django配置让其他电脑访问网站
- Caffe学习:Data
- hadoop学习路线
- unity3d 动态添加地面贴图 草地
- java算法int型整数反转的另类解法
- 腾讯云企业网盘正式入驻数字工具箱
- java word 模板_java根据模板生成word文件
- 第十五章.输入/输出
- Linux服务器取证研究,linux系统取证
- mysql 提示The maximum column size is 767 bytes.
- mp3与aac音频格式的比较
- 达立易考教育2023年全真模拟考试盛大开考,是骡子是马溜溜
- 游戏充值订单金额修改思路与实践
- 外汇局:12月中国国际货物和服务贸易顺差2280亿元
- Unity UGUI无限列表(Infinite List)
- c语言五子棋怎么判断五子连珠,分享一个 五子棋 输赢 的 判断逻辑。C#脚本
- 从“已知”到“可能”
- 条码软件如何在条形码下方显示文字信息