2209 Jsoi2011 括號序列

2022-05-12 09:24:06 字數 2029 閱讀 1763

輸入資料的第一行包含兩個整數n和q,分別表示括號序列的長度,以及操作的個數。 第二行包含乙個長度為n的括號序列。 接下來q行,每行三個整數t、x和y,分別表示操作的型別、操作的開始位置和操作的結 束位置,輸入資料保證x不小於y。其中t=0表示詢問操作、t=1表示反轉操作、t=2表示翻轉操 作。

對於每乙個詢問操作,輸出一行,表示將括號序列的該子串行修改為配對,所需的最少改動 個數。

6 3

)(())(

0 1 6

0 1 4

0 3 4 22

0100%的資料滿足n,q不超過10^5

。用splay維護,重點是如何維護詢問,如果我們把()這樣的去掉,那麼序列就變成了)))(((((這樣的,如果設(為1,)為-1,則區間的rmax,lmin即為所求。。

類似求最大連續子段和。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include

8 #include9 #include10 #include11 #include

12#define inf 1000000000

13#define maxn 150000+5

14#define maxm 10000+5

15#define eps 1e-10

16#define ll long long

17#define for0(i,n) for(int i=0;i<=(n);i++)

18#define for1(i,n) for(int i=1;i<=(n);i++)

19#define for2(i,x,y) for(int i=(x);i<=(y);i++)

20#define for3(i,x,y) for(int i=(x);i>=(y);i--)

21#define for4(i,x) for(int i=head[x],y=e[i].go;i;i=e[i].next,y=e[i].go)

22using

namespace

std;

23int

read()

26while(ch>='

0'&&ch<='9')

27return x*f;28}

29int n,m,rt,c[maxn][2

],fa[maxn],li[maxn],ri[maxn];

30int

lx[maxn],rx[maxn],sum[maxn],s[maxn],v[maxn];

31int

t1,t2;

32bool

cov[maxn],rev[maxn],inv[maxn];

33void pushup(int

x)42

void rotate(int x,int &k)

50void splay(int x,int &k)

58rotate(x,k);59}

60}61void cover(int x,int

y)67

void rever(int

x)74

void invert(int

x)81

void pushdown(int

x)83

if(rev[x])

84if(inv[x])85}

86int find(int x,int

k)93

void split(int x,int

y)97

void build(int l,int r,int

f)107 build(l,mid-1,mid);build(mid+1

,r,mid);

108pushup(mid);

109}

110int

main()

121 build(1,n+2,0);rt=(1+n+2)>>1

;122

while(m--)

129return0;

130 }

view code

BZOJ 2209 Jsoi2011 括號序列

輸入資料的第一行包含兩個整數n和q,分別表示括號序列的長度,以及操作的個數。第二行包含乙個長度為n的括號序列。接下來q行,每行三個整數t x和y,分別表示操作的型別 操作的開始位置和操作的結 束位置,輸入資料保證x不小於y。其中t 0表示詢問操作 t 1表示反轉操作 t 2表示翻轉操 作。對於每乙個...

JSOI2010 滿漢全席 2 SAT

傳送門 題目鏈結 滿漢全席 題目描述 滿漢全席是中國最豐盛的宴客菜餚,有許多種 同的材 透過滿族或是漢族的 方式,呈現在 繁多的菜色之中。由於菜色眾多而繁雜,只有極少 博學多聞技藝高超的廚師能夠做出滿漢全席,而能夠烹飪出經過專家認證的滿漢全席,也是中國廚師最大的榮譽之一。世界滿漢全席協會是由能夠 滿...

JSOI2010 滿漢全席 2 sat

做的第一道2 sat的題emmm。由題意可知,每個評委的兩個要求中,至少要滿足乙個,因此,如果有乙個不滿足,那另乙個必定要滿足 所以對於每道菜我們拆兩個點,乙個是滿族口味,乙個是漢族口味,如果我們要不滿足滿族口味,也就意味著我們要做漢族口味 所以照著每位評委的菜連邊即可 比如說乙個評委要求m1,m2...