日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BEAUTIFUL

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BEAUTIFUL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DESCRIPTION:
一個長度為n 的序列,對于每個位置i 的數ai 都有一個優美值,其定義是:找到序列中最
長的一段[l, r],滿足l<i<r,且[l, r] 中位數為ai(我們比較序列中兩個位置的數的大小時,
以數值為第一關鍵字,下標為第二關鍵字比較。這樣的話[l, r] 的長度只有可能是奇數),r - l
+ 1 就是i 的優美值。
接下來有Q 個詢問,每個詢問[l, r] 表示查詢區間[l, r] 內優美值的最大值。
INPUT:
第一行輸入n 接下來n 個整數,代表ai 接下來Q,代表有Q 個區間接下來Q 行,每行
兩個整數 l, r 表示區間的左右端點
OUTPUT:
對于每個區間的詢問,輸出答案
SAMPLE INPUT:
8
16 19 7 8 9 11 20 16
8
3 8
1 4
2 3
1 1
5 5
1 2
2 8
7 8
SAMPLE OUTPUT:
7
3
1
3
5
3
7
3

數據范圍:
30%: N,Q<50
70%:N,Q<2000

100%:N<2000,Q<100000,ai<200
對于所有數據,滿足n 2000, Q <100000,ai <200

#include<cstdio> #include<cstring> #include<iostream> using namespace std; int main() {freopen("beautiful.in","r",stdin);freopen("beautiful.out","w",stdout);static int a[2001],b[8001],v[2001],f[2001][2001];int *l(b+2000),*r(b+6000);int n(0),cnt(0);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",a+i);for(int i=1;i<=n;i++){cnt=0;memset(b,0,sizeof(b));l[0]=r[0]=i;for(int j=i-1;j>0;j--){if(a[j]>a[i])cnt++;else cnt--;l[cnt]=j;}cnt=0;for(int j=i+1;j<=n;j++){if(a[j]>=a[i])cnt++;else cnt--;r[cnt]=j;}v[i]=0;for(int j=-n;j<=n;j++)if(l[j]&&r[-j])v[i]=max(v[i],r[-j]-l[j]+1);} for(int i=1;i<=n;i++)f[i][i]=v[i];for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)f[i][j]=max(f[i][j-1],f[j][j]);int q(0);scanf("%d",&q);while(q){q--;int lt(0),rt(0);scanf("%d%d",&lt,&rt);printf("%d\n",f[lt][rt]);}return 0; }

?

轉載于:https://www.cnblogs.com/JebediahKerman/p/6011310.html

總結

以上是生活随笔為你收集整理的BEAUTIFUL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。