五校聯考1day1 已經沒有什麼好害怕的了

2021-09-10 02:26:58 字數 908 閱讀 2378

小y 最近開始學習演算法姿勢,但是因為小r 非常bb,給了她很多b6 題,所以她覺得自己已經沒有什麼前途了。於是小r 給了她一些稍微簡單的題,讓她覺得已經沒有什麼好害怕的了,其中一道是這樣的:

給定乙個長度為n 只包含左括號和右括號的序列,現在小r 想要知道經過每乙個位置的合法子串有多少個。

空串是乙個合法的串,如果a 和b 都是合法的串,那麼(a) 和ab 都是合法的串。

第一行輸入乙個正整數t 表示資料組數。接下來t 行每行乙個字串。

對於每組資料,輸出乙個整數表示答案,令ansi 為經過第i 個位置的子串個數,那麼你需要輸出(注意是先求餘再求和)

1()()

20樣例解釋:

ans 陣列為,所以輸出20。

對於10% 的資料,n<=100

對於30% 的資料,n <= 1000

對於60% 的資料,n <= 5 <= 10^4

對於100% 的資料,n <= 10^6,1 <= t<= 10

差分陣列

首先用棧找出所有左括號對應的右括號

用差分陣列維護字首和

#include

#include

#include

#define mod 1000000007

#define ll long long

using

namespace std;

const

int n=

1e6+77;

ll t,len,f[n]

,num1[n]

,num2[n]

,k[n]

,l[n]

,r[n]

,ans;

char s[n]

;int

main()

}

五校聯考1day1 已經沒有什麼好害怕的了

description 小y 最近開始學習演算法姿勢,但是因為小r 非常bb,給了她很多b6 題,所以她覺得自己已經沒有什麼前途了。於是小r 給了她一些稍微簡單的題,讓她覺得已經沒有什麼好害怕的了,其中一道是這樣的 給定乙個長度為n 只包含左括號和右括號的序列,現在小r 想要知道經過每乙個位置的合法...

五校聯考1day1 線段樹什麼的最討厭了

只要呼叫buildtree 1,0,n 就可以得到一顆線段樹了。顯然,一顆線段樹一共有o n 個節點,因為每乙個節點都代表了乙個不同的區間,所以線段樹上一共出現了o n 個不同的區間。現在給了你乙個區間 l,r 他想要你告訴他乙個最小的n 使得區間 l r 出現在了用buildtree 1,0,n ...

五校聯考1day1 我才不是蘿莉控呢

小y 小r 你是蘿莉控嗎。小r 為了避免這個尷尬的話題,小r 決定給小y 做一道題。有乙個長度為n 的正整數陣列a,滿足ai ai 1,現在構造乙個陣列b,令bi 現在,有乙個n n 的網格圖,左下角座標是 1,1 右上角座標是 n,n 有乙個小sb正在座標為 n,1 的位置,每一時刻,如果他現在在...