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

Lucky Number

时间:2015-11-23 23:29:36      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=209995

题目大意是说,定义一个数的lucky number是距离i最远的j且满足(a[i]<a[j] i<j)。

问对所有数最大的lucky number是什么。

不必线段树。

我们可以先处理出a[i]的最远点。倒着扫一遍即可。

然后可以处理出大于等于a[i]的最远位置。

技术分享
 1 /*************************************************************************
 2     > File Name: code/hust/20151115/A.cpp
 3     > Author: 111qqz
 4     > Email: rkz2013@126.com 
 5     > Created Time: 2015年11月23日 星期一 22时13分15秒
 6  ************************************************************************/
 7 
 8 #include<iostream>
 9 #include<iomanip>
10 #include<cstdio>
11 #include<algorithm>
12 #include<cmath>
13 #include<cstring>
14 #include<string>
15 #include<map>
16 #include<set>
17 #include<queue>
18 #include<vector>
19 #include<stack>
20 #include<cctype>
21 #define fst first              
22 #define sec second      
23 #define lson l,m,rt<<1
24 #define rson m+1,r,rt<<1|1
25 #define ms(a,x) memset(a,x,sizeof(a))
26 using namespace std;
27 const double eps = 1E-8;
28 const int dx4[4]={1,0,0,-1};
29 const int dy4[4]={0,-1,1,0};
30 const int N=1E5+6;
31 typedef long long LL;
32 int a[N];
33 int n;
34 int p[N];
35 const int inf = 0x3f3f3f3f;
36 int main()
37 {
38   #ifndef  ONLINE_JUDGE 
39    freopen("in.txt","r",stdin);
40   #endif
41 
42    int T;
43    scanf("%d",&T);
44    while (T--)
45    {
46        scanf("%d",&n);
47        int mx = -1;
48        for ( int i = 1 ; i <= n ; i++ ) scanf("%d",&a[i]),mx = max(mx,a[i]);
49 
50        
51        ms(p,-1);
52        for ( int i  = 1 ; i <= n ; i++)
53        p[a[i]] = max(p[a[i]],i);   //最远的a[i]的位置
54        for ( int i = mx ; i >= 1 ; i--)
55        p[i] = max(p[i],p[i+1]);//cout<<"p[i]:"<<p[i]<<endl; //最远的>= a[i]的位置
56 
57     int ans =  0;
58     for ( int i = 1 ; i <= n ; i++)
59         ans = max(ans,p[a[i]+1]-i);
60        printf("%d\n",ans);
61 
62    }
63 
64     
65   
66    
67  #ifndef ONLINE_JUDGE  
68   #endif
69   fclose(stdin);
70     return 0;
71 }
View Code

 

Lucky Number

标签:

原文地址:http://www.cnblogs.com/111qqz/p/4990006.html

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