Bailian4021 最大乘积【序列处理】
最大乘积
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- 给定一个整数数组,我们希望去掉其中一个数,使得剩下所有数的乘积最大,问应该去掉哪一个数
- 输入
-
第一行M,表示有M组数据
接下来2*M行,每两行表示一组测试数据,每组的第一行市一个整数N,表示是数组的长度,接下来一行有N个整数,表示数组的内容,3<=N<=100,且数组内每个数都在[-10000000,10000000]区间内. - 输出
- M行,每行一个整数,表示应该去掉的那个数,如果有多个选择,则输出最先输入的那个.
- 样例输入
-
4 3 0 1 2 5 2 3 5 4 8 5 -1 -2 -3 -4 -5 4 -1 -2 -3 -4
- 样例输出
-
0 2 -1 -4
问题链接:Bailian4021 最大乘积
问题分析:需要看负数的个数,自然数的个数,然后根据个数去除一个最小值或绝对值最小值。
程序说明:
旧版本程序出现WA,经过网友指正,已经AC。问题出在有0的情况下,需要特殊处理,没有考虑周全。
题记:(略)
AC的C语言程序如下:
/* Bailian4021 最大乘积 */#include <stdio.h>
#include <limits.h>int main(void)
{int m, n, a, i;int ncount, maxn, minn, pcount, minp, zcount, first, second;scanf("%d", &m);while(m--) {scanf("%d", &n);ncount = 0; /* 负数个数 */maxn = INT_MIN; /* 负数最大值 */minn = 0; /* 负数最小值 */pcount = 0; /* 自然数个数 */minp = INT_MAX; /* 自然数最小值(包括0) */zcount = 0; /* 零的个数 */for(i=1; i<=n; i++) {scanf("%d", &a);if(i == 1)first = a;else if(i == 2)second = a;if(a < 0) {ncount++;if(a > maxn)maxn = a;else if(a < minn)minn = a;} else {if(a == 0)zcount++;pcount++;if(a < minp)minp = a;}}if(zcount >= 2)printf("%d\n", first);else if(zcount == 1 && ncount % 2 == 1)printf("%d\n", first == 0 ? second : first);else if(ncount == 0)printf("%d\n", minp);else if(pcount == 0)printf("%d\n", (ncount % 2 == 1) ? maxn : minn);else if(ncount % 2 == 1)printf("%d\n", maxn);elseprintf("%d\n", minp);}return 0;
}
WA的C语言程序如下:
/* Bailian4021 最大乘积 */#include <stdio.h>
#include <limits.h>int main(void)
{int m, n, a, i;int ncount, maxn, minn, pcount, minp;scanf("%d", &m);while(m--) {scanf("%d", &n);ncount = 0; /* 负数个数 */maxn = INT_MIN; /* 负数最大值 */minn = 0; /* 负数最小值 */pcount = 0; /* 自然数个数 */minp = INT_MAX; /* 自然数最小值(包括0) */for(i=1; i<=n; i++) {scanf("%d", &a);if(a < 0) {ncount++;if(a > maxn)maxn = a;else if(a < minn)minn = a;} else {pcount++;if(a < minp)minp = a;}}if(ncount == 0)printf("%d\n", minp);else if(pcount == 0)printf("%d\n", (ncount % 2 == 1) ? maxn : minn);else if(ncount % 2 == 1)printf("%d\n", maxn);elseprintf("%d\n", minp);}return 0;
}
Bailian4021 最大乘积【序列处理】相关推荐
- 程序设计入门经典题解(百练篇)
参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...
- 处女座的测验(一)(互质数)
链接:https://ac.nowcoder.com/acm/contest/327/H 来源:牛客网 题目描述 : /* 做这题首先要明确怎么样的一对互质数会满足题目要求: (素数序列中任意一对都互 ...
- 度量空间(metric space)
参考文章:(GTM135)Advanced Linear Algebra 度量空间 定义 度量空间(metric space)是二元组(M,d)(M,d)(M,d),其中MMM是非空集合,度量(met ...
- 士成兄的面试经历(放弃5家offer终去了华为)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Gane_Cheng/article/d ...
- 连续因子pta c语言,PTA --- L1-006 连续因子
一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的 ...
- 卷积和互相关操作的关系
本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢. 前言# 卷积和互相关操作在数字信号处理中都是非常重要的公式,卷积是迟缓线性时不变系统的输出响应,而相关操作则在系统识别方面非常有 ...
- 腾讯、百度、珍爱网、中国电信、三之乐面试经历
2016年9月中下旬面试了5家公司.留下一点经验给后来人. 转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/54142709 http ...
- HDU2006 求奇数的乘积【入门+序列处理】
求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- leetcode-152 乘积最大子序列
题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6 ...
最新文章
- 2019-4:自考总结
- LeetCode 142. Linked List Cycle II--单向链表成环的起点--C++,Python解法
- 报错解决:alueError: When using data tensors as input to a model, you should specify the `steps_per_epoch
- [JAVA][Liferay] Configure sharding in multiple sites
- Intellij IDEA 创建Web项目并在Tomcat中部署运行
- Jquery 获取select,radio 和 checkbox的值
- java--模板方法模式
- cad里面f命令用不了_CAD出现命令无效、失灵等问题?不用慌,两招帮你快速解决...
- PinSAGE有伴了! 快速了解PinnerSAGE模型
- Quick Sort(三向切分的快速排序)(Java)
- LAMP环境搭建教程
- ios mk上传文件到服务器,ios – 使用预签名URL将文件上传到AWS S3的代码有什么问题?...
- 分布式服务框架 HSF
- 光电隔离RS485典型电路
- 读书百客:《渔家傲·天接云涛连晓雾》评赏
- InsecureProgramming-master——abo1
- 如何看hbo_如何取消HBO Max订阅
- wordpress 服务器_如何将WordPress从本地服务器移动到实时站点(2种方法)
- 用最新技术优化深度学习BTC交易机器人
- 录制iPhone屏幕
热门文章
- Web请求响应编码问题详解
- svg如何平铺 html5,如何在HTML5中使用SVG
- 前端路由跳转丢失端口号_Laravel框架-路由的基本概念及实例分析
- ✨Shell脚本实现Base64 加密解密
- Hive DDL DML
- c语言定义int 输出4386,C语言 · 矩阵乘法
- MATLAB里sortrows是什么意思,Matlab中sortrows函数解析
- java 向量点乘_向量的点乘与叉乘学习笔记
- valuable的用法_词汇精选:valuable的用法和辨析
- TensorFlow精进之路(十):循环神经网络RNN