题目264-国王的魔镜
国王的魔镜
- 描述
-
国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。
比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。
给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。
- 输入
-
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。 - 输出
- 每组测试数据的输出只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。
- 样例输入
-
2 ABBAABBA A
- 样例输出
-
2 1
题目很简单,其实就是用循环缩小范围,回文。
可能是我没有懂得这种题目的解题精髓,总是走很多弯路,讨论很多种情况却总是有遗漏。
下面代码中用函数做判断,然后回调到主函数种循环,可能是我以后解题的一种主要思路。
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
char str[110]; int change(int len){ int i=0,j=len-1; while(i<j){ if (str[i]!=str[j]) return 0; i++;j--; } return 1;
} int main(){ int t; cin>>t; while(t--){ cin>>str; int len=strlen(str); while(!(len&1) && change(len)) len/=2; cout<<len<<endl; } return 0;
}
题目264-国王的魔镜相关推荐
- NYOJ 264 国王的魔镜
国王的魔镜 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如一条项 ...
- 1093 打印小写字母表+1101时间的差+1115数字和+1134 国王的魔镜+1387简单加密+1480找字典码最小的字符串+1098判断是否构成回文+1591求子串的位置+1116调换位置
** 1093 - 打印小写字母表 ** 来源: 东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; int ma ...
- 0-1背包问题 题目:国王和金矿问题 描述:有一个国家发现了max_n座金矿,参与挖矿工人的总数是max_people人。每座金矿的黄金储量不同为一维数组gold[],需要参与挖掘的工人数也不同为一维
题目四:0-1背包问题 题目:国王和金矿问题 描述:有一个国家发现了max_n座金矿,参与挖矿工人的总数是max_people人.每座金矿的黄金储量不同为一维数组gold[],需要参与挖掘的工人数也不 ...
- NYOJ264国王的魔镜
国王的魔镜 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如 ...
- |洛谷|分治|P2799 国王的魔镜
https://www.luogu.org/problem/show?pid=2799 判断整个字符串是否对称,如果对称,那么从中间分开继续比较. 注意,当当前总长度为奇数时,直接退出,因为镜子不会把 ...
- 水题:P2799 国王的魔镜
思路:简单模拟即可.判断一下是不是回文,是回文看长度是不是偶数.是偶数的话,说明又可能是回文.依次这样处理.但是只要长度为奇数则一定是原来的长度直接输出即可. #include<iostream ...
- 用java解决国王的金币问题_国王赏赐金币问题(减治法)
题目: 国王赏赐大臣30枚金币,但是有一枚是假的,并且假的金币较轻,国王让大臣仅用一个天平,比较最少的次数得到答案.也就是,在n枚外观相同的硬币中,有一枚是假币,并且已知假币较轻,可以通过一架天平来任 ...
- 国王将金币作为工资,发放给忠诚的骑士。
题目描述 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后2天(第2天和第3天),每天收到2枚金币:之后3天(第4,5,6天),每天收到3枚金币:之后4天(第7,8,9,10天), ...
- akoj-1170-国王的魔镜
国王的魔镜 Time Limit:1000MS Memory Limit:65536K Total Submit:43 Accepted:21 Description 国王有一个魔镜,可以把任何接触 ...
- nyoj-264-国王的魔镜
国王的魔镜 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如 ...
最新文章
- “拟态防御”: 让黑客找不到破门之机
- React路由---react-router-dom、获取路由参数、ant design ui组件、fetch发送请求(默认不能跨域)、Switch...
- python 自然语言处理 (六) 采用deepQA搭建自动聊天机器人
- “约见”面试官系列之常见面试题之第八十五篇之css响应式(建议收藏)
- linux目录详解i-node,i-node节点与链接
- 练习四十八:面向对象执行效率
- 2-36进制,可以任意进制互转的类
- 关于前端模块化你应该知道的
- 第三章 进化算法之遗传算法及其应用
- xmind8 安装方法(old)
- WinSCP(SFTP客户端) v5.13.3中文版
- Oracle表空间(tablespaces)
- QtCreator添加文件夹
- P5837 [USACO19DEC]Milk Pumping G
- 数据,数据流,数据管道
- spring配置方式:
- 再论人与人的三大关系:生存关系、性关系和经济关系
- 链游系列 Decentraland / MANA 项目玩法解析
- java static方法过多_Java 项目静态方法过多会有什么样影响?静态类、静态方法影不影响多线程性能...
- Ubuntu Server 1404 换源