[ An Ac a Day ^_^ ] FZU 2030 括号问题 搜索

时间:2023-03-08 18:23:17

FZU一直交不上去 先写在这吧

 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
char s[];
int l,ans;
void dfs(int len,int mat){
if(len==l&&mat==){
ans++;
return ;
}
if(len==l&&mat!=) return ;
if(s[len]=='(') dfs(len+,mat+);
if(s[len]==')') dfs(len+,mat-);
if(s[len]=='?'){
dfs(len+,mat+);
dfs(len+,mat-);
}
} int main(){
while(gets(s)){
l=strlen(s);
ans=;
dfs(,);
printf("%d\n",ans);
}
return ;
}
/* ((??)) */
 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
char s[];
int l,ans,cnt,num;
int main(){
while(gets(s)){
l=strlen(s);
ans=;
cnt=;
num=;
for(int i=;i<l;i++){
if(s[i]=='(') cnt++;
if(s[i]==')') cnt--;
if(s[i]=='?') num++;
}
num-=cnt;
printf("%.0lf\n",pow(,num/));
}
return ;
}
/* ((??)) */