码迷,mamicode.com
首页 > 其他好文 > 详细

zzuli求最大值

时间:2015-11-22 12:39:29      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

1786: 求最大值

Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 134  Solved: 28
SubmitStatusWeb Board

Description

给定n个数,a[1]到a[n],请你帮忙找出a[i] - a[j]的最大值,其中1 <= i < j <= n.

Input

 第一行一个数T,表示一共有T组数据(T <= 20); 每组测试数据第一行一个整数n(2 <= n <= 10 ^ 5),表示接下来有n个数,第二行n个整数,不超过10 ^ 6,中间用空格隔开。

Output

 每组数据输出一行,表示最大值是多少。

Sample Input

2 5 5 2 3 6 1 2 3 2

Sample Output

5 1
题解:
题意是让找出a[i] - a[j]的最大值,但是i<j;
思路是找出a[i]前面最大的数px,再贪心找出px-a[i]的最大值就好了。。。
但是自己竟然想到了用LIS来找。。。直接px>a[i]?不就好了吗?把问题复杂化了。。。
代码:
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 const int MAXN=1e5+100;
 8 int main(){
 9     int T,N;
10     scanf("%d",&T);
11     while(T--){
12         scanf("%d",&N);
13         int x,px,ans=-1e7;
14         scanf("%d",&x);
15         px=x;
16         for(int i=1;i<N;i++){
17             scanf("%d",&x);
18             ans=max(ans,px-x);
19             if(x>px)px=x;
20         }
21         printf("%d\n",ans);
22     }
23     return 0;
24 }

自己的二分超时代码。。。。纯属无用工。。。肯定超时了。。。

//#include<bits/stdc++.h>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN=1e5+100;
int m[MAXN];
vector<int>vec;
typedef vector<int>::iterator ITE;
ITE erfen(ITE a,ITE b,int x){
	int mid,l=0,r=b-a;
	while(l<r){
		mid=(r-l)/2;
		if(vec[mid]>=x)r=mid-1;
		else l=mid+1;
	}
	return a+l;
}
int main(){
	int T,n;
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		int mx,ans=-1e7;
		vec.clear();
		for(int i=0;i<n;i++){
			scanf("%d",m+i);
			if(i){
				mx=vec[vec.size()-1];
			//	printf("%d\n",mx);
				ans=max(ans,mx-m[i]);
			}
			vector<int>::iterator iter;
			iter=erfen(vec.begin(),vec.end(),m[i]);
			if(iter==vec.end())vec.push_back(m[i]);
			else *iter=m[i];
		}
		printf("%d\n",ans);
	}
	return 0;
}

  

zzuli求最大值

标签:

原文地址:http://www.cnblogs.com/handsomecui/p/4985556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!