P2659 美丽的序列

P2659 美丽的序列
对于当前的最小值,找到最大的左右边界,然后更新答案。用单调队列确定左右边界,O(n)做法。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<queue>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<ctime>
 7 #include<set>
 8 #include<map>
 9 #include<stack>
10 #include<cstring>
11 #define inf 2147483647
12 #define For(i,a,b) for(register long long i=a;i<=b;i++)
13 #define p(a) putchar(a)
14 #define g() getchar()
15 //by war
16 //2017.11.2
17 using namespace std;
18 long long ans;
19 long long n;
20 struct node
21 {
22     long long l,r;
23 }aa[2000010];
24 long long q[2000010];
25 long long l,r;
26 long long x;
27 long long a[2000010];
28 void in(long long &x)
29 {
30     long long y=1;
31     char c=g();x=0;
32     while(c<‘0‘||c>‘9‘)
33     {
34     if(c==‘-‘)
35     y=-1;
36     c=g();
37     }
38     while(c<=‘9‘&&c>=‘0‘)x=(x<<1)+(x<<3)+c-‘0‘,c=g();
39     x*=y;
40 }
41 void o(long long x)
42 {
43     if(x<0)
44     {
45         p(‘-‘);
46         x=-x;
47     }
48     if(x>9)o(x/10);
49     p(x%10+‘0‘);
50 }
51 int main()
52 {
53     in(n);
54     l=1,r=0;
55     For(i,1,n)
56     in(a[i]);
57     For(i,1,n)
58     {
59         while(l<=r&&a[q[r]]>=a[i])aa[q[r--]].r=i-1;
60         aa[i].l=q[r++]+1;
61         q[r]=i;
62     }
63     while(l<=r)aa[q[r--]].r=n;
64     For(i,1,n)
65     ans=max(ans,(aa[i].r-aa[i].l+1)*a[i]);
66     o(ans);
67      return 0;
68 }
时间: 2024-11-13 03:32:27

P2659 美丽的序列的相关文章

【洛谷P2659】美丽的序列

题目背景 GD是一个热衷于寻求美好事物的人,一天他拿到了一个美丽的序列. 题目描述 为了研究这个序列的美丽程度,GD定义了一个序列的"美丽度"和"美丽系数":对于这个序列的任意一个区间[l,r],这个区间的"美丽度"就是这个区间的长度与这个区间的最小值的乘积,而整个序列的"美丽系数"就是它的所有区间的"美丽度"的最大值.现在GD想要你帮忙计算这个序列的"美丽系数". 输入输出格式 输入格

美丽的序列

题目背景 Background GD是一个热衷于寻求美好事物的人,一天他拿到了一个美丽的序列. 题目描述 Description 为了研究这个序列的美丽程度,GD定义了一个序列的“美丽度”和“美丽系数”:对于这个序列的任意一个区间[l,r],这个区间的“美丽度”就是这个区间的长度与这个区间的最小值的乘积,而整个序列的“美丽系数”就是它的所有区间的“美丽度”的最大值.现在GD想要你帮忙计算这个序列的“美丽系数”. 输入输出格式 Input/output 输入格式: 第一行一个整数n,代表序列中的元

[SOJ475]【SPC #2】美丽的序列 ~ Beautiful Sequence【莫队】【哈希】

题意简述:给一个长度为\(n\)的序列,每次给出\(x, y\),求有多少区间\([l, r]\)满足\(x\leq l\leq r\leq y\),且\([l, r]\)中每个元素都出现了偶数次.\(1\leq n, q \leq 10^5, 1\leq a_i\leq 10^6\). 设\(s_{i, j}\in[0, 1]\)表示前\(i\)个位置中,元素\(j\)出现的总次数\(\bmod 2\)的结果.显然\([l, r]\)中每个元素都出现了偶数次等价于\(\forall i\in

[luoguP2659] 美丽的序列(单调栈)

传送门 单调栈大水题 l[i] 表示 i 能扩展到的左边 r[i] 表示 i 能扩展到的右边 ——代码 1 #include <cstdio> 2 #include <iostream> 3 #define LL long long 4 5 const int MAXN = 2000002; 6 int n, t; 7 LL ans, a[MAXN], s[MAXN], l[MAXN], r[MAXN]; 8 9 inline int read() 10 { 11 int x =

!HDU 4346 插旗子RGR的插法有多少种-思维&amp;正难则逆&amp;思维!

题意:只有R和G两种旗子,美丽的插法是存在两个R的中点插G的情况,现在给你一个字符串代表现在有些地方已经插了,求美丽的插法有多少种 分析: 美丽=总 - 不美丽 所以我们来求不美丽有多少种. 这里就是思维的问题了:一个不美丽的序列必须满足的条件是任何两个相邻R的距离为奇数并且所有的相邻R的距离相等. 奇数这是显然的,如果两个相邻的R不为奇数,那么它们的中点存在,并且是G,这与不美丽矛盾: 距离相等也很好证:设三个相邻的R,R1R2的距离为x1,R2R3的距离为x2,则R1R3=x1+x2,因为x

[CF403D]Beautiful Pairs of Numbers

题意:给定$n,k$,对于整数对序列$\left(a_1,b_1\right),\cdots,\left(a_k,b_k\right)$,如果$1\leq a_1\leq b_1\lt a_2\leq b_2\lt\cdots\lt a_k\leq b_k\leq n$且所有的$b_i-a_i$互不相同,则称这个序列是“美丽的”,求美丽的序列的个数 先转化一下,把每个数对$\left(a_i,b_i\right)$看作一个区间$\left[a_i,b_i\right]$,则题目要求的是$k$个长

美丽联合业务升级下的机器学习应用

通常机器学习在电商领域有三大应用,推荐.搜索.广告,这次我们聊聊三个领域里都会涉及到的商品排序问题.从业务角度,一般是在一个召回的商品集合里,通过对商品排序,追求GMV或者点击量最大化.进一步讲,就是基于一个目标,如何让流量的利用效率最高.很自然的,如果我们可以准确预估每个商品的GMV转化率或者点击率,就可以最大化利用流量,从而收益最大. 蘑菇街是一个年轻女性垂直电商平台,主要从事服饰鞋包类目,2015年时全年GMV超过了百亿,后与美丽说合并后公司更名为美丽联合集团.2014年时入职蘑菇街,那时

bzoj 3744: Gty的妹子序列 主席树+分块

3744: Gty的妹子序列 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 101  Solved: 34[Submit][Status] Description 我早已习惯你不在身边, 人间四月天 寂寞断了弦. 回望身后蓝天, 跟再见说再见…… 某天,蒟蒻Autumn发现了从 Gty的妹子树(bzoj3720) 上掉落下来了许多妹子,他发现 她们排成了一个序列,每个妹子有一个美丽度. Bakser神犇与他打算研究一下这个妹子序列,于是Bakse

【BZOJ3809】Gty的二逼妹子序列

3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1627  Solved: 481[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)