hihoCoder 1110 正则表达式 (区间dp)

题意:

根据题目要求判断输入的串是否是正则表达式

给定一个字符串,判断其是否为合法的正则表达式。
 一个正则表达式定义为:

 1:0是正则表达式,1也是正则表达式。

 2:P和Q都是正则表达式,则PQ是正则表达式。

 3:P是正则表达式,则(P)是正则表达式

 4:P是正则表达式,则P*也是正则表达式

 5:P和Q都是正则表达式,则P|Q是正则表达式。

题解:

dp[i][j]表示ij区间是否是正则表达式。接着就是根据题目要求dp就好了。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define B(x) (1<<(x))
using namespace std;
typedef long long ll;
void cmax(int& a,int b){ if(b>a)a=b; }
void cmin(int& a,int b){ if(ba)a=b; }
void cmin(ll& a,ll b){ if(b



你可能感兴趣的:(动态规划,动态规划—区间dp)