hihocoder #1110 : 正则表达 区间dp
2017-03-01 19:58
302 查看
1110 : 正则表达式
题目链接:点击打开链接思路:
dp[i][j]为i到j这段中是否符合要求,先把所有的区间标记为不符合,先扫一遍把字符串中是1和0的字符标记为符合,然后在对 *, |,(),按照要求进行检查;
代码如下:
#include<bits/stdc++.h> using namespace std; #define INF 1000000 char s[101]; int main() { int dp[101][101]; while(cin>>s) { int len = strlen(s); for(int i = 0 ; i < len; i++) { for(int j = 0 ; j < len ; j++) { dp[i][j]=INF; } } for(int i = 0; i < len ; i++) { if(s[i] == '1' || s[i] == '0') { dp[i][i] = 0; } } for(int i = 1 ; i < len ; i++) { for(int j = 0 ; j < len-1 ; j++) { int k = i + j; if(s[j] == '(' && s[k] == ')' && dp[j+1][k-1] == 0) dp[j][k] = 0; if(s[k] == '*' && dp[j][k-1] == 0) dp[j][k] = 0; for(int z = j; z < k ; z++) { if(dp[j][z] == 0&&dp[z+1][k] == 0) dp[j][k] = 0; if(s[z] == '|' && dp[j][z-1] == 0 &&dp[z+1][k] == 0 && z > 0) dp[j][k] = 0; } } } printf("%s\n",dp[0][len-1] ? "no":"yes"); } }
相关文章推荐
- hihocoder 1110 正则表达式 (区间dp)
- hihoCoder 1110 正则表达式 (区间dp)
- hihoCoder--1110 正则表达式(区间dp)
- hihoCoder挑战赛7 1001 正则表达式 (区间DP)
- hihoCoder #1320 : 压缩字符串 区间dp
- LightOJ 1031 - Easy Game【区间dp】
- HDOJ 4632 - Palindrome subsequence/2013多校联合第四场A 区间DP
- hdoj Jam's maze 5617 (区间DP&&滚动数组)好题
- POJ - 2955 Brackets (区间DP)
- hdu 4412 Sky Soldiers (区间dp 单调性)
- BZOJ 1694 && 2037 【DP……算是区间?
- 校验年月日格式正则表达
- HDU 5115 Dire Wolf 区间dp
- POJ 2955 Brackets(区间dp)
- HDU 4632 Palindrome subsequence(区间DP)
- HDU Atlantis 线段树 表达区间 矩形面积相交
- hdoj5115【区间DP·基础】
- ios开发-密码正则表达示
- POJ 1159 Palindrome(区间dp)