博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P2799 国王的魔镜
阅读量:6604 次
发布时间:2019-06-24

本文共 973 字,大约阅读时间需要 3 分钟。

P2799 国王的魔镜

题目描述

国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。

输入输出格式

输入格式:

 

只有一个字符串,由大写英文字母组成(字母数<=100000),表示最终的项链。

 

输出格式:

 

只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。

 

输入输出样例

输入样例#1:
 
ABBAABBA
输出样例#1:
 
2
注意:当长度为奇数的时候直接跳出循环即可
利用二分的思想
#include
#include
#include
#include
#define N 100010using namespace std;char ch[N];int l,r,m,L,R,mid,ans;int judge(){ l=L,r=R; if((r-l+1)%2==1) return 0; while(l<=mid) { if(ch[l]==ch[r]) l++,r--; else return 0; } return 1;}int main(){ cin>>ch+1; int l=strlen(ch+1); L=1,R=l; while(L
>1; if(judge()) R=mid; else break; } ans=R-L+1; printf("%d",ans);}

 

转载于:https://www.cnblogs.com/z360/p/7967035.html

你可能感兴趣的文章
Linux压力测试
查看>>
JAVA中的线程机制(二)
查看>>
nginx安装与配置2(转载)
查看>>
Linux下Mongodb安装和启动配置
查看>>
2015 成长计划
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
Redis 与 数据库处理数据的两种模式
查看>>
VUE2中axios的使用方法
查看>>
assert 断言
查看>>
CS 229 notes Supervised Learning
查看>>
2018.10.27-dtoj-3996-Lesson5!(johnny)
查看>>
DataTable转换成json字符串
查看>>
iOS网络协议----HTTP/TCP/IP浅析
查看>>
ubuntu 12.04 安装 redis
查看>>
IOS_CGRect
查看>>
Sql Server中不常用的表运算符之APPLY(1)
查看>>
【DM642】ICELL Interface—Cells as Algorithm Containers
查看>>
linux所有命令失效的解决办法
查看>>
力扣算法题—085最大矩阵
查看>>
svs 在创建的时候 上传文件夹 bin obj 这些不要提交
查看>>