LightOJ 1051 - Good or Bad(dp)
2015-11-10 13:08
375 查看
题目链接:LightOJ 1051 - Good or Bad
代码
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 55; int N; char S[maxn]; bool dp[maxn][10][10]; bool isvowel(char ch) { if (ch == 'A' || ch == 'E' || ch == 'I') return true; if (ch == 'O' || ch == 'U' || ch == '?') return true; return false; } bool isconsoa(char ch) { if (!isvowel(ch) || ch == '?') return true; return false; } bool judge () { memset(dp, false, sizeof(dp)); dp[0][0][0] = true; for (int i = 1; i <= N; i++) { if (isvowel(S[i])) { dp[i][0][2] |= dp[i-1][0][1]; for (int j = 0; j <= 4; j++) dp[i][0][1] |= dp[i-1][j][0]; } if (isconsoa(S[i])) { for (int j = 4; j > 1; j--) dp[i][j][0] |= dp[i-1][j-1][0]; for (int j = 0; j <= 2; j++) dp[i][1][0] |= dp[i-1][0][j]; } } bool flag = false; for (int i = 0; i <= 4; i++) for (int j = 0; j <= 2; j++) flag |= dp [i][j]; return flag; } int main () { int cas; scanf("%d", &cas); for (int kcas = 1; kcas <= cas; kcas++) { scanf("%s", S + 1); N = strlen(S + 1); bool good = judge(); bool bad = false; for (int i = 1; i <= N && !bad; i++) { if (i <= N - 2 && isvowel(S[i])) { bool flag = true; for (int j = 1; j < 3; j++) flag &= isvowel(S[i+j]); bad |= flag; } if (i <= N - 4 && isconsoa(S[i])) { bool flag = true; for (int j = 1; j < 5; j++) flag &= isconsoa(S[i+j]); bad |= flag; } } printf("Case %d: ", kcas); if (bad && good) printf("MIXED\n"); else if (good) printf("GOOD\n"); else printf("BAD\n"); } return 0; }
相关文章推荐
- LightOJ 1030 - Discovering Gold(dp)
- golang中archive/tar包用法
- Google第二代深度学习系统TensorFlow开源(PPT下载)
- google ZXing 生成二维码
- Google访问地址
- SAP ABAP收货或者货物移动(MIGO,MB11,MB1A)在保存时候的增强点
- Google APAC 2016 University Graduates Test Round D
- POJ1003 Hangover
- Good Bye ACM
- POJ 2262 Goldbach's Conjecture
- go:channel(未完)
- invalid username/password logon denied
- 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::generic_category(void)
- 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest D题 Space Golf(三分)
- Introduction to Algorithm - Summary of Chapter 6 - Heapsort
- Google推荐书单
- Google APAC 2016 University Graduates Test Round D解题报告
- Microsoft、Google、Facebook的erasure code技术进展及系统分析
- [hdu3966 Aragorn's Story]树链剖分
- django中的signals