BJUTACM 1031:切割回文

这个题是DP的经典题目,主要思想及状态转移在于:一个位置需要切割的刀数,等于从之前到他最长的回文序列,之前的那个元素切割的刀数+1,或者如果他与之前的无法构成回文序列,则等于之前那个位置所需要切割的刀数+1

DP太不熟练了......真的需要多练了...

题目链接

#include 
#include 
using namespace std;
int judgethereverse(char s[],int start,int end)//这里需要采用线性judge 找寻第[start,end]
//采用 计算机下标 
{	
	//假设abcdefg 找寻 都2到5 2到6位 
	//    0123456
	int length = end-start+1;
	if(length%2==0)//如果是偶数位
	{ 
		int temp = (start+end+1)/2; 
		int count = 0;
		for(int i=start;i

 

你可能感兴趣的:(DP)