洛谷 P3015 [USACO11FEB]最好的括号Best Parenthesis
Posted 小时のblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P3015 [USACO11FEB]最好的括号Best Parenthesis相关的知识,希望对你有一定的参考价值。
题目大意:给出括号的得分标准。
()得分为1,如果A的得分为S(A),那么
(A)的得分为2*S(A)。
题解:搜索
#include<iostream> #include<cstdio> #include<cstring> #define N 100009 #define LL long long #define mod 12345678910LL using namespace std; int n,top; int sta[N],pos[N]; LL dfs(int l,int r){ LL ret=0; int rr=pos[l]; if(rr-l==1)ret=(ret%mod+1%mod)%mod; if(l!=rr-1)ret=(ret%mod+2*dfs(l+1,rr-1)%mod)%mod; if(rr+1<=r)ret=(ret%mod+dfs(rr+1,r)%mod)%mod; return ret%mod; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ int x; scanf("%d",&x); if(x==0) sta[++top]=i; else if(top) pos[sta[top--]]=i; } cout<<dfs(1,n); return 0; }
以上是关于洛谷 P3015 [USACO11FEB]最好的括号Best Parenthesis的主要内容,如果未能解决你的问题,请参考以下文章
洛谷 P3014 [USACO11FEB]牛线Cow Line
洛谷P3014 [USACO11FEB]牛线Cow Line
洛谷P3045 [USACO12FEB]牛券Cow Coupons
洛谷P3048 [USACO12FEB]牛的IDCow IDs