中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

西安網(wǎng)站seo技術(shù)上海網(wǎng)絡(luò)seo

西安網(wǎng)站seo技術(shù),上海網(wǎng)絡(luò)seo,哪里有網(wǎng)站建設(shè)哪家好,wordpress可以建網(wǎng)站嗎題意 傳送門 Codeforces 1625E2 Cats on the Upgrade (hard version) 題解 首先利用棧將原始字符串轉(zhuǎn)換為合法的 RBS,不能匹配的括號設(shè)為 ‘.’。根據(jù)匹配的括號序列構(gòu)造樹,具體而言,遇到左括號,則新建節(jié)點向下遞歸&#xff0c…
題意

傳送門 Codeforces 1625E2 Cats on the Upgrade (hard version)

題解

首先利用棧將原始字符串轉(zhuǎn)換為合法的 RBS,不能匹配的括號設(shè)為 ‘.’。根據(jù)匹配的括號序列構(gòu)造樹,具體而言,遇到左括號,則新建節(jié)點向下遞歸,遇到右括號則回溯。則對于括號樹上某一結(jié)點 v v v,子節(jié)點為 c h i ch_i chi?,其代表的合法括號序列 R B S v = ( R B S c h 0 ) ( R B S c h 1 ) ? RBS_v = (RBS_{ch_0})(RBS_{ch_1})\cdots RBSv?=(RBSch0??)(RBSch1??)?

對于某棵子樹的答案,為子樹的貢獻,加上 k ( k + 1 ) / 2 k(k+1)/2 k(k+1)/2,其中 k k k 為子樹的數(shù)量,后一項貢獻代表了連續(xù)的 R B S c h RBS_{ch} RBSch? 的枚舉。操作 1 僅刪除葉子節(jié)點與其雙親節(jié)點的連邊,那么使用 BIT 維護節(jié)點的貢獻和,以及每個節(jié)點的子樹數(shù)量即可。總時間復(fù)雜度 O ( ( n + q ) log ? n ) O\Big((n + q)\log{n}\Big) O((n+q)logn)。

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
template <typename T>
struct BIT {vector<T> a;BIT() {}void init(int n) {a.resize(n + 1);}void add(int i, T x) {while (i < (int)a.size()) {a[i] += x;i += i & -i;}}T get(int i) {T s = 0;while (i > 0) {s += a[i];i -= i & -i;}return s;}
};int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, q;cin >> n >> q;string s;cin >> s;{vector<int> stk;for (int i = 0; i < n; ++i) {auto c = s[i];if (c == '(') {stk.push_back(i);} else {if (stk.empty()) {s[i] = '.';} else {stk.pop_back();}}}while (!stk.empty()) {s[stk.back()] = '.';stk.pop_back();}}vector<vector<int>> g(1);vector<int> vs(n), idx(n);{int pos = 0;auto nxt = [&]() {while (pos < n && s[pos] == '.') {pos += 1;}return pos;};function<void(int)> get = [&](int v) {while (nxt() < n && s[pos] == '(') {int u = g.size();g.push_back({});g[v].push_back(u);vs[pos] = v;idx[pos] = (int)g[v].size() - 1;pos += 1;get(u);nxt();vs[pos] = v;idx[pos] = (int)g[v].size() - 1;pos += 1;}};get(0);}int m = vs.size();BIT<ll> bit;bit.init(m);vector<BIT<int>> v_bit(m);vector<int> left(m), right(m);{int tm = 0;function<void(int)> dfs = [&](int v) {left[v] = tm;tm += 1;int k = g[v].size();v_bit[v].init(k);for (int i = 0; i < k; ++i) {v_bit[v].add(i + 1, 1);}bit.add(left[v] + 1, (ll)(k + 1) * k / 2);for (int u : g[v]) {dfs(u);}right[v] = tm;};dfs(0);}while (q--) {int op, l, r;cin >> op >> l >> r;l -= 1;r -= 1;assert(vs[l] == vs[r]);int v = vs[l];int a = idx[l], b = idx[r];if (op == 1) {bit.add(left[v] + 1, -v_bit[v].get((int)g[v].size()));v_bit[v].add(a + 1, -1);} else {ll res = bit.get(right[g[v][b]]) - bit.get(left[g[v][a]]);int k = v_bit[v].get(b + 1) - v_bit[v].get(a);res += (ll)(k + 1) * k / 2;cout << res << '\n';}}return 0;
}
http://www.risenshineclean.com/news/22704.html

相關(guān)文章:

  • 泰興市淘寶網(wǎng)站建設(shè)鄭州seo推廣
  • 網(wǎng)站備案導(dǎo)致網(wǎng)站被k百度網(wǎng)盤下載電腦版官方下載
  • 從事網(wǎng)站開發(fā)辦理什么個體重慶百度推廣關(guān)鍵詞優(yōu)化
  • 好聽好記的網(wǎng)站域名網(wǎng)站優(yōu)化企業(yè)排名
  • 溫州網(wǎng)站建設(shè)方案服務(wù)企業(yè)站seo案例分析
  • 免費天眼查公司查詢aso優(yōu)化公司
  • 網(wǎng)站被攻擊空間關(guān)了怎么辦網(wǎng)站seo快速
  • 教做視頻的網(wǎng)站優(yōu)化系統(tǒng)的軟件
  • 南京做機床的公司網(wǎng)站智能優(yōu)化大師下載
  • 有那些專門做外貿(mào)的網(wǎng)站呀seo的優(yōu)化方案
  • 做彩票網(wǎng)站需要什么收錢的百度競價有點擊無轉(zhuǎn)化
  • 公司做網(wǎng)站需要什么免費入駐的賣貨平臺有哪些
  • 安卓是哪個公司開發(fā)的seo優(yōu)化自動點擊軟件
  • 網(wǎng)站優(yōu)化最牛逼的軟件最有效的惡意點擊軟件
  • 怎么建立自己網(wǎng)站 asp如何進行關(guān)鍵詞分析
  • 做ppt用什么網(wǎng)站北京優(yōu)化seo排名優(yōu)化
  • 教育公司 網(wǎng)站建設(shè)愛客crm
  • 做網(wǎng)站怎么備案seo綜合查詢什么意思
  • 專門做配電箱的網(wǎng)站b站推廣網(wǎng)站mmm
  • 多語種網(wǎng)站營銷寧波seo關(guān)鍵詞優(yōu)化制作
  • 怎樣弄網(wǎng)站的導(dǎo)航欄百度競價是什么意思
  • 上饒網(wǎng)站開發(fā)有哪些網(wǎng)絡(luò)推廣平臺
  • 專門做活動的網(wǎng)站怎么注冊一個自己的網(wǎng)站
  • 視頻網(wǎng)站哪個做的好網(wǎng)絡(luò)營銷意思
  • 企業(yè)網(wǎng)站建設(shè)網(wǎng)頁推廣軟文300字
  • 網(wǎng)站怎么做評估北京seo優(yōu)化排名
  • 網(wǎng)站建設(shè)員官網(wǎng)設(shè)計比較好看的網(wǎng)站
  • 怎樣辦網(wǎng)站seo關(guān)鍵字排名
  • 攝影師個人網(wǎng)站制作自動點擊器免費下載
  • 新建設(shè)電影院 網(wǎng)站開網(wǎng)站需要什么流程