南阳264(国王的魔镜)

国王的魔镜

时间限制:3000 ms  |  内存限制:65535 KB

难度:1

描述
国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。

比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。

给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。

输入
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。
输出
每组测试数据的输出只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。
样例输入

2
ABBAABBA
A

样例输出

2
1

来源
2008年小学生程序设计友谊赛试题
//经镜子对称后数组元素个数肯定为偶数个;

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int m;
 6     scanf("%d",&m);
 7     while(m--)
 8     {
 9         char str[100];
10         scanf("%s",str);
11         int len=strlen(str);
12         if(len%2==1)
13         printf("%d\n",len);
14         else
15         {
16             while(len!=0)
17             {
18                 int j,k,b=0;
19                 for(j=0,k=len-1;j<len/2;j++,k--)
20                 {
21                     if(str[j]==str[k])
22                     b++;
23                 }
24                 if(b==len/2)
25                 {
26                     len/=2;
27                     if(len%2==1)
28                     {
29                         printf("%d\n",len);
30                         break;
31                     }
32                 }
33                 else
34                 {
35                     printf("%d\n",len);
36                     break;
37                 }
38             }
39         }
40     }
41     return 0;
42  }

//头懵懵的,FUCK!!

时间: 2024-10-14 01:15:43

南阳264(国王的魔镜)的相关文章

NYOJ 264 国王的魔镜

国王的魔镜 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠.如果把B端接触镜面的话,魔镜会把这条项链变为ABBA.如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜). 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度. 输入 第一行是一个整数N(N<

264 国王的魔镜

  描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的. 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠.如果把B端接触镜面的话,魔镜会把这条项链变为ABBA.如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜). 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度. 输入 第一行是一个整数N(N<=10)表示测试数据的组数)每组测试数据占一行 只有一个字符串(长度小于100)

国王的魔镜(南阳oj264)(字符串处理)

国王的魔镜 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠.如果把B端接触镜面的话,魔镜会把这条项链变为ABBA.如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜). 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度. 输入 第一行是一个整数N(N<

洛谷 P2799 国王的魔镜

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

国王的魔镜

时间限制:3000 ms  |  内存限制:65535 KB难度:1 描述    国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠.如果把B端接触镜面的话,魔镜会把这条项链变为ABBA.如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜). 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度. 输入    第一行是一个整数N(N<=

南阳264

1 //递归就是快... 2 #include<stdio.h> 3 char s[100]; 4 int lenth(char*); 5 int check(char*,int); 6 int main() 7 { 8 int n; 9 scanf("%d",&n); 10 while(n--) 11 { 12 scanf("%s",s); 13 int len=lenth(s); 14 printf("%d\n",chec

题解 P2799 【国王的魔镜】

本蒟蒻在刚开始做这题时第一反应就是递归,题目不难,但我提交了n次才过. 下面粘代码,我的代码冗长,但思路非常明确. #include<bits/stdc++.h>//看到大佬们都不推荐使用,但我还是会使用,因为到目前为止我还没有遇到一个与它有关的问题 using namespace std; char a[1000010];//利用a来进行存储原始的排列顺序. int ans=0;//ans用来记录分解的次数. void fj(int r)//递归操作 { int mid=r/2;//进行分解

水题:P2799 国王的魔镜

思路:简单模拟即可.判断一下是不是回文,是回文看长度是不是偶数.是偶数的话,说明又可能是回文.依次这样处理.但是只要长度为奇数则一定是原来的长度直接输出即可. #include<iostream> #include<cstring> using namespace std; const int maxn = 100000 + 10; char num[maxn]; bool flag(int x){ int p = 0, q = x-1; while (p < q&&

计蒜客NOIP模拟赛(3)D1T3 任性的国王

X 国的地图可以被看作一个两行 nn 列的网格状图.现在 X 国需要修建铁路,然而该国的国王非常小气,他只想保证位于某两列之间的所有城市互相可以到达就行了,在此基础上,他希望所花费的代价最小. 铁路可以建在任何两个相邻的点之间,使他们可以互相到达.可以作为工作人员,你已经整理出了为每一对相邻城市架设铁路所需要的花费.你需要准备好回答国王如下形式的问题. 对于 (i,j)(i,j):当前情况下,使第 ii 列到第 jj 列之间的所有城市连通的最小代价是多少(列下标从 11 开始)?注意不能用其他列