> 웹 프론트엔드 > 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
풀어 주다: 2016-06-24 11:55:36
원래의
1227명이 탐색했습니다.

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>
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿