1018 隐藏的北航

来源:互联网 发布:淘宝加盟靠谱吗 编辑:程序博客网 时间:2024/04/30 19:17
 

描述

ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest – ACM-ICPC)由国际计算机学界著名的ACM学会(Association for Computer Machinery)主办,是世界上规模最大、水平最高的国际大学生程序竞赛。每年举办一次。ACM成立于计算机诞生次年,是目前计算机学界中历史最悠 久、最具权威性的组织。

ACM国际性大学生程序设计竞赛自1970年开始,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。参加本项比赛的选手至少需要掌握 计算机科学的常用算法,基本的计算理论,(如:离散数学,具体数学,组合数学基础),数据结构基础,程序设计语言(规定是C/C++或者是Java)。在 本项比赛中考察学生的不仅仅是能够完成指定任务的程序,更要求在完成程序的功能的基础之上提高程序的运行效率与空间占用率。从数学角度考虑,题目主要的方 向集中在工程数学,抽象数学很少涉及。一般题目都会给出要求和几组输入和输出作为程序设计的参考,也是检验程序正确性的标准之一。

为了能够让大家切实原汁原味的ACM-ICPC竞赛试题是什么样的,我们模仿该项赛事的出题风格为大家奉献一道具有启发性的好题。希望这题能成为大家投身 程序设计竞赛的良好开端。 题目描述如下:

Given a string of uppercase letters, is it possible to erase one or more characters to get the string 'BUAA'?

输入

The first line contains a single integer T(1<=T<=15), the number of test cases.
Each test case is a single line containing at least 1 and at most 100 uppercase letters.
There are no spaces, TABs, lowercase letters or other characters before, or after the string.

输出

For each test case, print the case number and 'Yes' if it is possible to get 'BUAA', or 'No' otherwise.
The output is case-sensitive, so don't output 'YES' or 'yes' when 'Yes' should be output.

样例输入

4
ACMBUAA
ACMAAUB
HELLOWORLD
BUACMA

样例输出

Case 1: Yes
Case 2: No
Case 3: No
Case 4: Yes

解题思路:
此题是一道水题,细细读完题就会深切感受到这一点。但有一个问题要注意,就是BUAA不一定是连续出现的,这个要进行判断才行。
 
#include<stdio.h>#include<string.h>main(){    int number,te;    char a[102];    int i,j,k,r;    int length;    int flag;    scanf("%d",&number);    for(te=1;te<=number;te++)    {   flag=0;scanf("%s",&a);length=strlen(a);if(length<=4){flag=0;}else{for(i=0;i<=length-4;i++)if(a[i]=='B'){for(j=i+1;j<=length-3;j++)if(a[j]=='U'){for(k=j+1;k<=length-2;k++)if(a[k]=='A'){for(r=k+1;r<=length-1;r++)if(a[r]=='A')flag=1;}}}}if(flag==1)printf("Case %d: Yes\n",te);elseprintf("Case %d: No\n",te);getchar();    }}

 
 
原创粉丝点击