HDU 4561 模拟
来源:互联网 发布:数据交易呢主体 编辑:程序博客网 时间:2024/06/08 15:19
连续最大积
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2012 Accepted Submission(s): 633
比如我们有如下随机数组:
2 2 0 -2 0 2 2 -2 -2 0
在这个数组的众多连续子序列中,2 2 -2 -2这个连续子序列的积为最大。
现在小明请你帮忙算出这个最大值。
接下来的T组数据,每组数据第一行输入N,表示数组的元素总个数(1<= N <= 10000)。
再接下来输入N个由0,-2,2组成的元素,元素之间用空格分开。
如果最终的答案小于等于0,直接输出0
否则若答案是2^x ,输出x即可。
每组数据占一行,具体输出格式参见样例。
22-2 0102 2 0 -2 0 2 2 -2 -2 0
Case #1: 0Case #2: 4#include<stdio.h>int a[50000+100],n;int solve(int s,int e){ int i,cnt=0,st,ed,flag=1,ans=0; if(s==n+1) return 0; for(i=s;i<e;i++) {
if(a[i]==-2) { if(flag) {flag=0;st=i;} ed=i; cnt++; } } if(cnt%2==0) return e-s; if(ans<ed-s) ans=ed-s; if(ans<e-st-1) ans=e-st-1; if(ans<ed-st) ans=ed-st; return ans;}int main(){ int cas,i,k,ans; scanf("%d",&cas); for(k=1;k<=cas;k++) { ans=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); a[0]=0; for(i=0;i<=n;) { if(a[i]==0) { int ii=i+1; while(1) { i++; if(i==n+1||a[i]==0) { int mid=solve(ii,i); if(ans<mid) ans=mid; break; } } } } printf("Case #%d: %d\n",k,ans); } return 0;}
- hdu 4561 水模拟
- HDU 4561 模拟
- hdu 4561 模拟题
- hdu 4561 模拟小题
- 【几何模拟】hdu 3286
- hdu 1020 Encoding(模拟)
- hdu 1303 Doubles(模拟)
- hdu 4020 模拟
- HDU **** 暴力模拟
- HDU 4068 模拟
- HDU 4121 模拟
- 【模拟】HDU 4134
- HDU-1279 模拟
- HDU-1035 模拟
- HDU-1283 简单模拟
- HDU-1263 模拟
- hdu 4140 模拟
- hdu 1034 #模拟
- baseadapter适配器
- 【Leetcode】Reverse Linked List II
- css中的id和class
- 音乐播放器类程序后台运行
- caffe + ubuntu15.04 安装教程
- HDU 4561 模拟
- CSS复习总结(2)
- 字符串左右移动(java实现)
- 你真的会玩SQL吗?实用函数方法汇总
- 并行机器最短调度问题
- github简明教程
- 数据库连接配置3 -- C3P0数据源
- python的内存管理
- Android进阶-复杂的UI框架(一)