zoukankan      html  css  js  c++  java
  • Codeforces Round #265 (Div. 2) C. No to Palindromes! 构建无回文串子

    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 <= high;++i){
            if(str[i] == str[i-1] || str[i] == str[i-2])
                return true;
        }
        return false;
    }
    bool find(int x,bool big)
    {
        if(x == n){
            if(strcmp(ch,ans) == 0)
                return false;
            return true;
        }
        for(char i = big?

    'a':ch[x];i < p+'a';++i){ ans[x] = i; int j; if(fun(0,x,ans,x+1)) continue; // for(j = 0;j < x;++j) // if(fun(j,x,ans,x-j+1)) // break; // if(j != x) continue; if(find(x+1,big|ans[x] > ch[x])) return true; } return false; } int main() { RD2(n,p); scanf("%s",ch); ans[n] = ''; if(find(0,0)) puts(ans); else puts("NO"); return 0; }



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    【转】谈谈 JVM 内部锁升级过程
    TCP 和 UDP 协议简介
    《分布式系统原理介绍》读书笔记
    Paxos 协议简单介绍
    Lease 机制和 Quorum 机制
    HBase 学习二(最佳实践).
    HBase 学习一(基础入门).
    Spring 事务介绍
    《MySQL技术内幕:InnoDB存储引擎》读书笔记.
    数据库事务简介.
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4825233.html
Copyright © 2011-2022 走看看