第一题http://202.197.224.59/OnlineJudge2/index.php/Problem/index/p/6/
简单DFS,DP也可以做^
#include<iostream>
using namespace std;
char s[20];
int dp[20][20];
int main()
{
int i,j;
while(cin>>s)
{
//puts(s);
memset(dp,0,sizeof(dp));
dp[0][1]=1;
for(i=1;s[i-1]!='/0';i++)
for(j=1;j<=i+1;j++)
{
if(s[i-1]=='(')dp[i][j]=dp[i-1][j-1];
else if(s[i-1]==')')dp[i][j]=dp[i-1][j+1];
else if(s[i-1]=='?')dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1];
//cout<<dp[i][j]<<" ";
}
cout<<dp[strlen(s)][1]<<endl;
}
return 0;
}