首页 >web前端 >html教程 >Codeforces Round #265 (Div. 2) C. No to Palindromes! 构造不含回文子串的串_html/css_WEB-ITnose

Codeforces Round #265 (Div. 2) C. No to Palindromes! 构造不含回文子串的串_html/css_WEB-ITnose

WBOY
WBOY原创
2016-06-24 11:55:361222浏览

http://codeforces.com/contest/465/problem/C

给定n和m,以及一个字符串s,s不存在长度大于2的回文子串,现在要求输出一个字典比s大的字符串,且串中字母在一定范围内,并且说同样不存在长度大于2的回文子串。


直接去递归构造即可,从最后一位开始,每次只要判断是否子串中含有回文串,其实仔细想想只要考虑是否存在一个字符和前两个字符中的一个相同即可。不卡时限,裸的判断都能过

#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <vector>#include<set>#include <iostream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define clr0(x) memset(x,0,sizeof(x))typedef long long LL;int p,n;char ch[1005],ans[1005];//int fun(int low, int high, char *str, int length)//{//    if (length == 0 || length == 1)//        return    1;//    if (str[low] != str[high])//        return    0;//    return fun(low+1, high-1, str, length-2);//}int fun(int low, int high, char *str, int length){    if (length == 0 || length == 1)        return  false;    if(str[low] == str[low+1])        return  true;    for(int i = low + 2;i  ch[x]))            return true;    }    return false;}int main() {    RD2(n,p);    scanf("%s",ch);    ans[n] = '\0';    if(find(0,0))        puts(ans);    else        puts("NO");    return 0;}</algorithm></iostream></set></vector></queue></string></cstring></cmath></cstdlib></cstdio>


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn