Codeforces Round #265 (Div. 2) C. No to Palindromes! 构造不含回文子串的串
2014-10-25 09:07
483 查看
http://codeforces.com/contest/465/problem/C
给定n和m,以及一个字符串s,s不存在长度大于2的回文子串,现在要求输出一个字典比s大的字符串,且串中字母在一定范围内,并且说同样不存在长度大于2的回文子串。
直接去递归构造即可,从最后一位开始,每次只要判断是否子串中含有回文串,其实仔细想想只要考虑是否存在一个字符和前两个字符中的一个相同即可。不卡时限,裸的判断都能过
给定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 = '\0'; if(find(0,0)) puts(ans); else puts("NO"); return 0; }
相关文章推荐
- Codeforces Round #265 (Div. 2) C. No to Palindromes! 构造不含回文子串的串
- Codeforces Round #265 (Div. 2) C. No to Palindromes!(字符串+构造??)
- Codeforces Round #265 (Div. 2) C. No to Palindromes! 构建无回文串子
- Codeforces Round #265 (Div. 2)-C. No to Palindromes!
- Codeforces Round #265 (Div. 2) C.No to Palindromes!
- Codeforces Round #265 (Div. 2) C. No to Palindromes!
- Codeforces Round #265 (Div. 2) C. No to Palindromes!
- Codeforces Round #265 (Div. 2) C - No to Palindromes!
- Codeforces Round #265 (Div. 1) A No to Palindromes!
- codeforces No to Palindromes!(字符串处理,不能有回文)
- Codeforces Round #265 (div2) A. inc ARG
- Codeforces Round #265 (Div. 2) B. Inbox (100500)
- Codeforces Round #265 (Div. 2)
- Codeforces Round #265 (Div. 2) 解题报告
- Codeforces Round #265 (div2) B. Inbox (100500)
- Codeforces Round #265 (Div. 2) C 暴力+ 找规律+ 贪心
- Codeforces Round #265 (Div. 2) E
- Codeforces Round #265 (Div. 1) B Restore Cube
- Codeforces Round #265 (Div. 2)E(数位dp)
- Codeforces Round #265 (Div. 2) 465A. inc ARG(数学题)