HDU 5504 GT and sequence 模拟
2015-10-18 21:30
337 查看
给一串整数数字a[0] , a[1].....a
(a[i]<2^63-1),任意挑选出一个或一个以上的数,问怎样挑选出的数乘积最大。
模拟:
如果a[i]>0;直接乘;
如果a[i]==0 不乘;
如果a[i]<0 如果小于0的个数为偶数全乘,为奇数最大的负数(即绝对值最小)不乘。
特判两个情况:n==1 && a[0]<0 答案为a[0] ;数组a只含一个负数,然后其他都为0,答案为0;
题目思路不难想到,但是两个特判的情况容易遗漏;以后做这种题目要头脑冷静,也不要过分贪快,敲代码要准确而快速。
还有一个疑问:a[i]是<2^63-1;为什么乘积不会超过long long 范围。
原文:It guaranteed that **the absolute value of** any product of the numbers you choose in the initial sequence will not bigger than 。
难道是我英文不好。。流泪。。
(a[i]<2^63-1),任意挑选出一个或一个以上的数,问怎样挑选出的数乘积最大。
模拟:
如果a[i]>0;直接乘;
如果a[i]==0 不乘;
如果a[i]<0 如果小于0的个数为偶数全乘,为奇数最大的负数(即绝对值最小)不乘。
特判两个情况:n==1 && a[0]<0 答案为a[0] ;数组a只含一个负数,然后其他都为0,答案为0;
题目思路不难想到,但是两个特判的情况容易遗漏;以后做这种题目要头脑冷静,也不要过分贪快,敲代码要准确而快速。
还有一个疑问:a[i]是<2^63-1;为什么乘积不会超过long long 范围。
原文:It guaranteed that **the absolute value of** any product of the numbers you choose in the initial sequence will not bigger than 。
难道是我英文不好。。流泪。。
<span style="font-size:18px;">#include <cstdio> #include <algorithm> using namespace std; #define maxx(a,b) ((a>b)?a:b) long long a[100]; int main() { int T,n,i; long long ans; scanf("%d",&T); while(T--) { ans=1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%lld",&a[i]); if(n==1 && a[0]<0) { printf("%lld\n",a[0]); continue; } sort(a,a+n); int k1=0,k2=-1,k3=-1; for(i=0;i<n;i++) { if(a[i]<0) k1=i+1; else if(k2==-1 && a[i]==0) k2=i; else if(a[i]>0) { k3=i; break; } } if(k1!=0 && k3!=-1) { if(k1&1) { for(i=0;i<k1-1;i++) ans*=a[i]; for(i=k3;i<n;i++) ans*=a[i]; } else { for(i=0;i<k1;i++) ans*=a[i]; for(i=k3;i<n;i++) ans*=a[i]; } } else if(k1!=0 && k3==-1) { if(k1&1) { for(i=0;i<k1-1;i++) ans*=a[i]; } else { for(i=0;i<k1;i++) ans*=a[i]; } } else if(k1==0) for(i=k3;i<n;i++) ans*=a[i]; if(k2!=-1 && k3==-1 && k1==1) ans=maxx(ans-1,0); printf("%lld\n",ans); } return 0; } </span>
相关文章推荐
- UI技巧 批量修改控件属性
- TCO14 2C L2: CliqueGraph,graph theory, clique
- Hive ERROR: Out of memory due to hash maps used in map-side aggregation
- iOS UIView 快速修改 frame,
- Android 应用的 UI 设计师应当如何如何定义字体的 sp 值
- easyUI panel组件
- Chapter 7 Quicksort
- IOS UI控件-UIScrollView
- [BZOJ3043] IncDec Sequence
- UIImagePickerController详解
- require头域
- UVA11235 - Frequent values
- UI初学者必须慎重对待的五个误区
- 一个UI设计小菜鸟的自行车旅途
- CALayer与UIView的关系
- UIAlertView显示后自动消失
- Android实用的开源框架(UI框架)
- 一步一步学Qt(Qt Quick)/qml 开发第五篇(第一个可视的应用)
- hdu5504 GT and sequence
- 编程技巧:使用整数同时进行多个true|false判断