xuptoj 1298: 找到最大的乘积
来源:互联网 发布:淘宝买家订单能导出吗 编辑:程序博客网 时间:2024/06/10 20:17
1298: 找到最大的乘积
时间限制: 1 Sec 内存限制: 128 MB提交: 64 解决: 6
[提交][状态][讨论版]
题目描述
给定N(N < 100)个数,每个数的绝对值小于等于5,从这N个数中找到M个数,使得这M个数的乘积最大,请你输出最大的乘积
输入
第一行一个整数T, 表示询问的组数,T < 20
每组数据:
第一行两个整数N, M
第二行为N个数,中间用空格隔开
输出
求得的乘积最大值
样例输入
24 41 2 3 43 31 2 3
样例输出
246
提示
注意读题~
几组数据之间要注意初始化等问题
#include<stdio.h>#include<string.h>int a[101];void sort(int n) { int i; int j; int t; for(i = 0;i < n;i++) { for(j = i;j < n;j++) { if(a[i] > a[j]) { t = a[i]; a[i] = a[j]; a[j] = t; } } }}int main(void) { int T; int n; int m; int sum; int count; int i; int j; scanf("%d",&T); while(T--) { memset(a,0,sizeof(a)); count = 1; scanf("%d %d",&n,&m); for(i = 0;i < n;i++) { scanf("%d",&a[i]); } sort(n); i = 0; j = n - 1; while(i <= n - 1 && j >= 0 && m > 0) { if(a[i] * a[i+1] > a[j] * a[j-1] && m >= 2) { count *= (a[i] * a[i+1]); i += 2; m -= 2; } else { count *= a[j]; j--; m--; } } printf("%d\n",count); } return 0;}
阅读全文
0 0
- xuptoj 1298: 找到最大的乘积
- Integer Break 找到乘积最大的拆分
- 乘积最大的分解
- 乘积最大的拆分
- 最大乘积的实现
- 在一个数组中找到连续的子数组最大的乘积
- 在数组中找到至少包含一个数字的子阵具有最大的乘积
- 笔试题 找到数组中,三个数乘积最大的结果
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 子数组的最大乘积
- 矩阵相乘
- 蓝桥-ALGO-38-接水问题
- Matlab GUI控件之——uitable
- nvidia_tx1开发笔记
- Visual Studio的Output窗口自动滚动行为控制
- xuptoj 1298: 找到最大的乘积
- 第一个只出现一次的字符
- Android RelativeLayout(相对布局的一些属性)
- 自己写一个linux的系统调用
- 197.m1-listView显示app的所有条目信息
- Java的静态方法不能被重写(详解!)
- ThinkPHP5学习(10)数据库-查询语言
- ITS_MY_CSDN__MY_F&L
- POJ2914_Minimum Cut_无向图最小割::stoer_wagner算法