給了乙個括號序列。定義乙個合法的括號序列需要滿足下列幾個條件:
1. 非空,也就是長度》0
2.長度是偶數。
3.前 n/2個字元是(
4. 後n/2個字元是)
比如: (()) 是合法的,()()是不合法的
然後問這個括號序列有多少個子序列是合法的,位置不同就算不同。
**中的式子是c(l[i]-1+r[i],r[i]-1) 因為題解中的那個l[i]代表的是i位置左邊有多少個'('. 而**中的l[i]包括的i個位置。
#includeusing namespace std;
typedef long long ll;
const int maxn=2e5+5;
const int mod=1e9+7;
char s[maxn];
int l[maxn];
int r[maxn];
ll fac[maxn],ni[maxn];
ll ksm(ll a, ll b)
return ans;
}ll c(int n,int m)
int main()
for(int i=n;i>=1;i--)
ll ans=0;
for(int i=1;i<=n;i++)
}printf("%lld\n",ans);
return 0;
}
Codeforces 785D 範德蒙恒等式
1.題目鏈結。題目大意 乙個由括號構成的序列,讓你找到這個序列中有多少個好的子串行。乙個好的子串行的定義是這樣的 2.分析 這個題是乙個組合數學問題。對於每乙個 我們統計它的左邊有多少個和它相同的,右邊有多少個和它相對的。也就是在這個左括號的左邊選出i個左括號,右邊選出i 1個右括號。為什麼是i 1...
Codeforces 703D 樹狀陣列
codeforces 703d 題意 給1e6長度的區間,每個單位代表乙個數。給1e6個詢問,每次問區間內出現次數為偶數次的數異或和。思路 賽中的時候想莫隊水過去,結果pretest都沒過233 正解是樹狀陣列。首先假設是奇數次的話,就是乙個簡單字首和。現在偶數次,有乙個處理技巧就是記錄這個區間出現...
codeforces 912D 期望計算
題目鏈結 題意 在乙個n m的魚塘裡面放置k條魚,每次可以選定乙個r r的矩陣並獲得矩陣內魚的數量的分數。請問該如何在魚塘裡面放置魚,使得最後的期望得分最大。思路 直接通過列舉放置魚的位置計算期望得分明顯非常非常不現實,於是我們換一種計算思路我們去計算各點放置魚之後可以得到的期望得分,然後取前k大的...