poj 2558 Genetic Code 深搜+打表

原创 2015年11月17日 17:15:22

题意:

求一个长度为n的串n<=5000,它没有相邻且相同的子串。

分析:

一开始各种构造,后来发现可以深搜,输出结果的时候打表就可以了,原来O(3^5000)的程序也不是一定会超时的。。只要剪枝吊,照样可以搞。。

代码:

//poj 2558
//sep9
#include <iostream>
using namespace std;
const int maxN=5000;
int n,ok,a[maxN+10];

bool check(int cur)
{
	for(int len=1;len<=(cur+1)/2;++len){
		int p=cur-2*len+1;
		int q=cur-len+1;
		while(a[p]==a[q]&&q<=cur)
			++p,++q;
		if(q>cur)
			return false;	
	}
	return true;		
}

void dfs(int cur)
{
	if(cur>maxN){
		ok=1;
		return ;
	}
	for(int i=0;i<3&&!ok;++i){
		a[cur]=i;
		if(check(cur))
			dfs(cur+1);
	}	
}

int main()
{
	ok=0;
	dfs(0);
	while(scanf("%d",&n)==1&&n){
		for(int i=0;i<n;++i)
			if(a[i]==0) putchar('N');
			else if(a[i]==1) putchar('O');
			else putchar('P');		
		puts("");
	}
	return 0;	
} 


相关文章推荐

深搜+宽搜+剪枝 配合POJ题目

  • 2013年02月09日 15:47
  • 288KB
  • 下载

zoj 1097 Code the Tree(记忆化深搜构造树)

中文题意:http://www.bnuoj.com/bnuoj/problem_show.php?pid=1009 #include #include #include #include ...
  • cacyth
  • cacyth
  • 2015年05月09日 18:27
  • 738

hdu 1111 Secret Code(复数·展开·深搜·输出)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1111 Secret Code Time Limit: 2000/1000 MS (Java/O...

ZOJ1984:genetic code 遗传编码 题解 C

ZOJ1984 genetic code 遗传编码 题解 TAG:DFS

POJ2488 A Knight's Journey(深搜DFS,字典序,骑士游历问题)

题目: A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4298...

poj1321棋盘问题 裸深搜

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。...

POJ Sudoku 数独填数(深搜)

题目:http://poj.org/problem?id=2676 思路:见代码: #include #include #include #include using namespace s...

poj 2488 深搜+回溯

package com.liang.poj; import java.util.Scanner; public class Test2488 { static boolean b ...

poj 1979 Red and Black(深搜)

Red and Black Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 23390   ...

POJ 1011 Sticks(拯救少林神棍)__深搜

DescriptionGeorge took sticks of the same length and cut them randomly until all parts became at mos...
  • tp7309
  • tp7309
  • 2016年12月03日 20:16
  • 330
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 2558 Genetic Code 深搜+打表
举报原因:
原因补充:

(最多只允许输入30个字)