#1039 : 字符消除
来源:互联网 发布:潍坊行知学校邮编 编辑:程序博客网 时间:2024/05/25 19:57
#1039 : 字符消除
时间限制:1000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
3ABCBCCCAAAAAABC
- 样例输出
942
最开始想的是不用ABC分别都要试一试,因为以为只有插入后能够发生消除才有意义,所以只需插入与本位置一样的就行。实际上这样做是错的,检查了很久发现还是有情况不满足:如BBBAB 只有在第一个B后面插入A才能全消除。所以只好改为暴力法了。还有就是要注意一轮一轮地消除,新的序列能消除了不能马上做,要等这一轮完了才做,不然会带来不一样的结果。
代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>char *myfun(char *s);int main(void){ int n,i,m,x,j,k,len,max=0,temp; char *ABC="ABC"; char s[111]; char s1[111]; scanf("%d",&n); while(n--) { max=0; temp=0; memset(s,0,sizeof(s)); scanf("%s",s); len=strlen(s); for(x=0;x<len;x++)//在哪个位置插入 { for(k=0;k<3;k++) { memset(s1,0,sizeof(s1)); for(i=0;i<x;i++) { s1[i]=s[i]; } s1[x]=ABC[k]; for(i=x;s[i]!='\0';i++) { s1[i+1]=s[i]; } temp=( len-strlen(myfun(s1))); if(max<temp) max=temp; } } printf("%d\n",(max)) ; } return 0;}char *myfun(char *s){ int i,j,k,len,flag; char *key=NULL; char temp; flag=0; while(!flag) { flag=1; len=strlen(s); for(i=0;i<(len-1);i++) { temp=s[i]; j=i+1; while( temp==s[j] ) { flag=0; s[i]='0'; s[j]='0'; j++; } i=j-1; } if(!flag) { while( (key=strchr(s,'0')) !=NULL ) { strcpy(key,key+1); } } } return (char *)s;}
描述
小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:
1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成新的字符串"ABB"。
2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。例如”ABCCBCCCAA”经过一轮消除得到"ABB",再经过一轮消除得到"A"
游戏中的每一关小Hi都会面对一个字符串s。在消除开始前小Hi有机会在s中任意位置(第一个字符之前、最后一个字符之后以及相邻两个字符之间)插入任意一个字符('A','B'或者'C'),得到字符串t。t经过一系列消除后,小Hi的得分是消除掉的字符的总数。
请帮助小Hi计算要如何插入字符,才能获得最高得分。
输入
输入第一行是一个整数T(1<=T<=100),代表测试数据的数量。
之后T行每行一个由'A''B''C'组成的字符串s,长度不超过100。
输出
对于每一行输入的字符串,输出小Hi最高能得到的分数。
提示
第一组数据:在"ABCBCCCAA"的第2个字符后插入'C'得到"ABCCBCCCAA",消除后得到"A",总共消除9个字符(包括插入的'C')。
第二组数据:"AAA"插入'A'得到"AAAA",消除后得到"",总共消除4个字符。
第三组数据:无论是插入字符后得到"AABC","ABBC"还是"ABCC"都最多消除2个字符。
0 0
- #1039 : 字符消除
- hihoCoder:#1039 字符消除
- #1039 : 字符消除
- #1039 : 字符消除
- hiho 1039 : 字符消除
- HihoCoder#1039:字符消除
- hihocoder #1039 : 字符消除
- hihoCoder 1039 字符消除
- hihoCoder 1039 字符消除
- #hihocoder #1039 字符消除
- hihocoder#1039 : 字符消除
- hihocoder #1039 : 字符消除
- hihocoder 1039 字符消除
- Hihocoder 1039 : 字符消除
- hihoCoder #1039 : 字符消除
- hihoCoder 1039 字符消除
- #1039 : 字符消除
- #1039 : 字符消除
- 闭包
- 在linux上创建nfs遇到的问题。
- 随机数求pai的问题,高中知识啊
- 第17周项目4-日期结构体(1)当年第几天
- Combination Sum求和为给定值的所有序列的解题思路(续)
- #1039 : 字符消除
- 鸟哥linux
- HDU - 1561(简单树形背包)
- JUNIT之COMMAND模式学习笔记
- WRTnode的基本配置(ssh登录与连接Internet)
- ERROR: 32-bit Linux Android emulator binaries are DEPRECATED
- android Theme使用总结
- 从有限状态机、图灵机到现代计算机
- 动漫发展前线