首页 > 代码库 > 【UVA】620-Cellular Structure(递推)
【UVA】620-Cellular Structure(递推)
读错题了一开始。
一个细胞每次可以进行3中增值方式,给你一个最终形态,问你达到这个形态之前的那个到这个最终形态是通过哪一种方式得到的。
直接递推就可以了,小优化就是如果这个字符串长度为偶数,那么肯定发生了变异。
14144659 | 620 | Cellular Structure | Accepted | C++ | 0.009 | 2014-09-04 07:31:52 |
#include<cstdio> #include<algorithm> #include<string> #include<cstring> #include<map> #include<iostream> using namespace std; #define MAXD 10000 + 10 char str[MAXD]; int dfs(int start , int last){ if(start == last && str[start] == 'A') return 1; if(last - 2 >= start && str[last] == 'B' && str[last - 1] == 'A' && dfs(start,last - 2)) return 2; if((last - 1 >= start + 1) && str[start] == 'B' && str[last] == 'A' && dfs(start + 1 , last - 1)) return 3; return 0; } int main(){ int T; scanf("%d",&T); while(T--){ scanf("%s",str); int L = strlen(str); if(L != 1 && !(L & 1)) printf("MUTANT\n"); else{ switch(dfs(0,L - 1)){ case 1 : printf("SIMPLE\n"); break; case 2 : printf("FULLY-GROWN\n"); break; case 3 : printf("MUTAGENIC\n"); break; case 0 : printf("MUTANT\n"); break; } } } return 0; }
【UVA】620-Cellular Structure(递推)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。