hdu 5489(2015網路賽合肥賽區)

2021-07-05 13:05:49 字數 2520 閱讀 1795

題目鏈結

題意:給定乙個長度為

n<=105

的序列 求刪去連續長度為

0<=

l<=

n

的序列後的li

s

思路:

假設你已經會o(

nlog

n)的l

is, 刪去

i

前面連續一段長度為

l 即[

i−l,

i-1]

的 序列, 左邊是i−

l−1

, 右邊是

i

, 求剩下的li

s

首先預處理出: f[

i]:=以

a[i]

結尾的l

is的最

大長度 g[

i]:=以

a[i]

開頭的l

is的最

大長度

我們可以根據

i

, 找到 [0

,i−l

−1]

之間的乙個值 

其值小於a[

i], 而其f[

i]值是最大的, 也就是o(

n2)

求lis的思想 

關鍵是如何快速確定在[0

,i−l

−1]

中, 找到這個值 

我們利用線段樹和離散化, 將a[

i]對映到線段樹上 假設i

位置對應的值是

x

,並且其對映到線段樹上對應的下標是

y [0

,y−1

]

之間的最大值ma

xvma

xv[i

]=ma

x

其實就是dp

[i]:=

以a[i]

結尾, 刪去[i

−l,i

−1] 長度為

l 的li

s 的最大長度dp

[i]=

maxv

[i]+

g[i]

,ans

=max

注意:普通的lis演算法只能求得區間內的lis但不能保證畢包含頭或尾,

這裡利用lower_bound函式在nlogn的時間求任意字首且包含字首尾的lis ( 即f[ i ] )。

同樣利用該函式求得任意字尾且包含字尾頭的lis ( 即g[ i ] )。

#pragma comment(linker, "/stack:102400000,102400000")

#include#include#include#include #include#include#include#include#include#include#include#includeusing namespace std;

#define eps 1e-8

#define pii pair#define inf 0x3f3f3f3f

#define rd(x) scanf("%d",&x)

#define rd2(x,y) scanf("%d%d",&x,&y)

#define ll long long int

#define mod 1000003

#define maxn 110000

#define maxm 10001005

int mi(int a,int b)

int n,t,l,ans;

int a[maxn],aa[maxn];

int f[maxn],g[maxn],h[maxn];

int mx[maxn*4];

void update(int rt,int x,int v,int l,int r)

int mid=(l+r)>>1;

if(mid>=x) update(rt*2,x,v,l,mid);

else update(rt*2+1,x,v,mid+1,r);

mx[rt]=ma(mx[rt*2],mx[rt*2+1]);

}int query(int rt,int lx,int rx,int l,int r)

}int main()

sort(aa+1,aa+1+n);

int nn=unique(aa+1,aa+1+n)-aa-1;

memset(h,0x3f,sizeof h);

for(int i=1;i<=n;i++)

memset(h,0x3f,sizeof h);

for(int i=n;i>=1;i--)

a[0]=f[0]=g[n+1]=0; a[n+1]=0x3f3f3f3f;

memset(mx,0,sizeof mx);

ans=0;

for(int i=l+1;i<=n+1;i++)

printf("case #%d: %d\n",++tt,ans);

}return 0;

}

2019網路賽總結

今年的網路賽,包括從一開始的ccpc到昨天結束了的icpc,總的來說發揮是很差的,補了一暑假的圖論知識基本上是一次都沒有用到,非常的難受,說說我們不足的地方吧,首先,從一開始我就感覺出來了,我們隊伍的整體的氛圍是很差的,這個氛圍是指我們隊伍內討論的情況,就像是各打個的,乙個題目下來了基本上沒有什麼討...

HDU5878 HDU5891 2016網路賽青島

a 題意 給出乙個整數n 找出乙個大於等於n 的最小整數m 使得m的質因數只有2 3 5 7 分析 預處理出質因數2 3 5 7的數,超過maxt就行,然後找 b 題意 求1 1 2 1 2 2 1 n 2 分析 題坑,意思是n很大 感覺上越到後來值越小,實際上這個是趨向 2 6,於是小範圍的n直接...

學軍11 29網路賽 題解 總結

題面 前一小時被迫打oi賽制。後面自身心情原因打acm賽制。a太過毒瘤,在3h多才切。d暴力題噁心死人。切abc。後面兩題甚至沒有心情打部分分,所以在切了a之後我的比賽已經結束了。300分整個機房最後一名 另外三位440,還有一位500拿rank1 一開始就想到做到後面有迴圈節並且迴圈節是2。但是在...