关注
我这个分治的思路
//C
#pragma GCC optimize(2)
(1282)#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int maxn = 4e5 + 10, mod = 1e9 + 7, inf = 0x3f3f3f3f;
char s[maxn];
int n, match[maxn];
ll dfs(int l, int r){
if(l + 1 == r) return 2;
int now = l;
ll ans = 1;
if(match[l] == r){
ans = (dfs(l+1, r-1) + 1) % mod;
}else {
while(now <= r){
ans = (ans * dfs(now, match[now])) % mod;
now = match[now] + 1;
}
}
return ans % mod;
}
void init(){
stack<int> st;
for(int i = 1; i <= n; i++){
if(s[i] == '(')
st.push(i);
else {
match[st.top()] = i;
st.pop();
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> (s + 1);
n = strlen(s + 1);
init();
cout << dfs(1, n) << '\n';
return 0;
}
查看原帖
点赞 评论
相关推荐
04-03 08:39
河南科技大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 烂工作和没工作哪个更痛苦? #
3601次浏览 83人参与
# 牛油的搬砖plog #
189686次浏览 1279人参与
# 厦门银行科技岗值不值得投 #
16783次浏览 404人参与
# AI替代不了什么? #
3931次浏览 60人参与
# 发工资后,你做的第一件事是什么 #
100664次浏览 342人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
1792次浏览 30人参与
# 春招至今,你收到几个面试了? #
6725次浏览 95人参与
# 学历VS实习,哪个更重要? #
13405次浏览 195人参与
# 实习心态崩了 #
111349次浏览 566人参与
# 一人分享一道面试手撕题 #
115109次浏览 2929人参与
# OPPO笔试 #
23351次浏览 104人参与
# 谈薪时HR压价该怎么应对 #
294320次浏览 3362人参与
# 工作上你捅过哪些篓子? #
69415次浏览 337人参与
# 产品人求职现状 #
361793次浏览 2604人参与
# 机械校招之路总结 #
120393次浏览 2084人参与
# 面试紧张时你会有什么表现? #
36095次浏览 246人参与
# 你的实习什么时候入职 #
368512次浏览 2372人参与
# uu们,春招你还来吗? #
71141次浏览 956人参与
# 面试中,你被问过哪些奇葩问题? #
100141次浏览 1453人参与
# 刚工作的你,踩过哪些坑? #
33708次浏览 278人参与
# 牛友的志愿填报指南 #
64108次浏览 494人参与