FZU一直交不上去 先写在这吧
1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<math.h> 5 #include<string.h> 6 #include<string> 7 #include<map> 8 #include<set> 9 #include<vector> 10 #include<queue> 11 #define M(a,b) memset(a,b,sizeof(a)) 12 using namespace std; 13 typedef long long ll; 14 char s[20]; 15 int l,ans; 16 void dfs(int len,int mat){ 17 if(len==l&&mat==0){ 18 ans++; 19 return ; 20 } 21 if(len==l&&mat!=0) return ; 22 if(s[len]=='(') dfs(len+1,mat+1); 23 if(s[len]==')') dfs(len+1,mat-1); 24 if(s[len]=='?'){ 25 dfs(len+1,mat+1); 26 dfs(len+1,mat-1); 27 } 28 } 29 30 int main(){ 31 while(gets(s)){ 32 l=strlen(s); 33 ans=0; 34 dfs(0,0); 35 printf("%d ",ans); 36 } 37 return 0; 38 } 39 /* 40 41 ((??)) 42 43 */
1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<math.h> 5 #include<string.h> 6 #include<string> 7 #include<map> 8 #include<set> 9 #include<vector> 10 #include<queue> 11 #define M(a,b) memset(a,b,sizeof(a)) 12 using namespace std; 13 typedef long long ll; 14 char s[20]; 15 int l,ans,cnt,num; 16 int main(){ 17 while(gets(s)){ 18 l=strlen(s); 19 ans=0; 20 cnt=0; 21 num=0; 22 for(int i=0;i<l;i++){ 23 if(s[i]=='(') cnt++; 24 if(s[i]==')') cnt--; 25 if(s[i]=='?') num++; 26 } 27 num-=cnt; 28 printf("%.0lf ",pow(2,num/2)); 29 } 30 return 0; 31 } 32 /* 33 34 ((??)) 35 36 */