lightoj 1051 - Good or Bad DP
2016-03-23 12:00
507 查看
给定一个字符串,如果存在三个连续的元音字母或者五个连续的辅音字母就是bad,否则是good,但是字符串中存在?,这个可以是任何字母,如果bad和good都能到达的话就是mixed。
开始就是想着乱搞,先判断是否肯定是bad,然后接着xjb弄。
但是考虑一下dp[i][j][k]代表到达i这个地方有连续j个元音或者连续k个辅音的状态能否达到。开始不想开三维,只是开两维判断一下,但是状态转移过于麻烦...
那么问题就变成了一个判定性问题,如果到达某一个点j=3的状态达到了或者k=5的状态到达了那么肯定就是bad。
那么good怎么判断...不能遇到bad结束,万一是?的选择到达的呢,那么我们需要把bad的状态忽略掉,他不能为以后的状态提供帮助
到达最后一个字母后,如果某个非bad的状态被达到了肯定能有good的状态存在...
开始就是想着乱搞,先判断是否肯定是bad,然后接着xjb弄。
但是考虑一下dp[i][j][k]代表到达i这个地方有连续j个元音或者连续k个辅音的状态能否达到。开始不想开三维,只是开两维判断一下,但是状态转移过于麻烦...
那么问题就变成了一个判定性问题,如果到达某一个点j=3的状态达到了或者k=5的状态到达了那么肯定就是bad。
那么good怎么判断...不能遇到bad结束,万一是?的选择到达的呢,那么我们需要把bad的状态忽略掉,他不能为以后的状态提供帮助
到达最后一个字母后,如果某个非bad的状态被达到了肯定能有good的状态存在...
#include<bits/stdc++.h> using namespace std; int dp[55][5][7]; char s[55]; int pd(char x) { return x=='A'||x=='E'||x=='I'||x=='O'||x=='U'; } int main() { int t; scanf("%d",&t); for(int cas=1; cas<=t; cas++) { scanf("%s",s+1); int bad,good; bad=good=0; memset(dp,0,sizeof(dp)); dp[0][0][0]=1; int len=strlen(s+1); for(int i=1; i<=len; i++) { for(int j=0; j<3; j++) //连续j个元音存在的情况能扩展的情况 { if(dp[i-1][j][0]==0) continue; if(s[i]=='?') dp[i][j+1][0]=dp[i][0][1]=1; else if(pd(s[i])) dp[i][j+1][0]=1; else dp[i][0][1]=1; } if(dp[i][3][0]) bad=1; for(int j=0; j<5; j++) //连续j个辅音存在的情况能扩展到哪 { if(dp[i-1][0][j]==0) continue; if(s[i]=='?') dp[i][1][0]=dp[i][0][j+1]=1; else if(pd(s[i])) dp[i][1][0]=1; else dp[i][0][j+1]=1; } if(dp[i][0][5]) bad=1; } for(int i=1; i<3; i++) if(dp[len][i][0]) good=1; for(int i=1; i<5; i++) if(dp[len][0][i]) good=1; printf("Case %d: ",cas); if(bad&&good) puts("MIXED"); else if(bad) puts("BAD"); else puts("GOOD"); } return 0; }
相关文章推荐
- TypeError: unbound method func1() must be called with base1 instance as first argument (got nothing
- Django--models连表构建
- Django中的Model(表结构)
- revel nohup 部署
- Google自己的下拉刷新组件SwipeRefreshLayout
- go语言闭包,匿名函数,变量使用
- 蒙特卡罗树搜索+深度学习 -- AlphaGo原版论文阅读笔记
- Codeforces 653E:Bear and Forgotten Tree 2
- Xcode7.0无法找到category的解决方法
- Django--上传文件
- This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms whil...
- [HDU3966]Aragorn's Story 做题笔记
- 并发之痛 Thread,Goroutine,Actor
- Django--models基础
- Django--admin后台
- Google 网上论坛(Google Online Forums)
- Windows平台Go调用DLL的坑(居然有这么多没听过的名词)
- Google 网上论坛(Google Online Forums)
- [POJ 2195]Going Home[费用流]
- Django中对静态文件的支持