蓝桥杯 - 最大乘积
2016-02-12 16:51
344 查看
算法提高 最大乘积
时间限制:1.0s 内存限制:512.0MB问题描述
对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢?输入格式
第一行一个数表示数据组数每组输入数据共2行:
第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,
第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。
输出格式
每组数据输出1行,为最大的乘积。样例输入
15 5
1 2 3 4 2
样例输出
48#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main() { int t, n, m; int num[20]; scanf("%d", &t); while(t--){ scanf("%d %d", &n, &m); for(int i = 0; i < n; i++) scanf("%d", &num[i]); sort(num, num+n); int i, j, a, b; i = j = 0; long long ans = 1; while(m){ a = num[i]*num[i+1]; b = num[n-j-1]*num[n-j-2]; if(a>=b && m>=2){ ans*=a; i+=2; m-=2; } else{ ans*=num[n-j-1]; j++; m--; } } printf("%lld\n", ans); } return 0; }
相关文章推荐
- 矩阵乘法经典应用之置换
- 1002. A+B for Polynomials (25)
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- [JSP] - frequently-used skills
- 用十条命令在一分钟内检查Linux服务器性能
- Key-Value Coding
- Github学习记录
- CodeVS3044矩形面积求并
- Codeforces AIM-TECH round div2 624AB 623ABC
- JS固定侧边栏教程总结
- 【数据结构实验】校园游览导图系统
- hdu4606 计算几何+二分+二分图匹配+最短路
- 英雄
- 如何分叉以太坊并变成私链?
- 【CodeForces 620D】Professor GukiZ and Two Arrays
- java基本数据类型及相互间的转换
- C++中cin、cin.get()、cin.getline()、getline()、gets()等
- [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书
- HDU2485 Destroying the bus stations(floyd+最大流)
- .Net后台使用RegisterClientScriptBlock和RegisterStartupScript调用前台的JS 区别