uva620

本文介绍了一种通过递归深度优先搜索算法来判断细胞分裂状态的方法。算法针对四种不同的细胞分裂状态——变异(MUTANT)、简单(SIMPLE)、完全成熟(FULLY-GROWN)、突变基因(MUTAGENIC)进行识别。输入为一串字符,通过特定的条件判断最终的分裂状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:一个细胞有三种分裂状态,如果最后形成的新细胞不是由两种的正确的分裂方式形成的,就是变异。给出一个字符串判断是什么分裂状态(四种)。


#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
char s[1005];
int dfs(int l, int r) {
	if(r-l>=2 && s[l]=='B' && s[r]=='A') {
		if(dfs(l+1,r-1))
			return 3;
	}
	if(r-l>=2 && s[r-1]=='A'&&s[r]=='B' && dfs(l,r-2)) return 2;
	if(l==r && s[l]=='A') return 1;
	if(r-l>=1 && s[r]=='A' && dfs(l,r-1)) return 1;
	return 0;

}
int main() {
	int kase;
	scanf("%d", &kase);
	while(kase--) {
		cin>>s;
		int ans = dfs(0,strlen(s)-1);
		switch(ans) {
			case 0:printf("MUTANT\n");break;  
			case 1:printf("SIMPLE\n");break;  
			case 2:printf("FULLY-GROWN\n");break;  
			case 3:printf("MUTAGENIC\n");break;  
		}
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值