[蓝蓝计算机考研算法]-day03

138 阅读2分钟

4.一个小球从10m,落下,每次弹回之前高度的一半,请问小球在静止之前一共走过多少距离。

思路

除了第一次落地,接下来每次落地前经过的距离均为前一次落地前的高度一半,为等比数列。求等比数列的和并对n取极限即为所求。

具体实现

我要通过

“答案正确” 是自动判题系统给出的最令人欢喜的回复。本题属于PAT的 “答案正确” 大派送———只要读入的字符串满足下列条件,系统就输出 “答案正确” ,否则输出 “答案错误”

得到 “答案正确” 的条件是: 1.字符串中必须仅有P、A、T这三种字符,不可以包含其他字符; 2.任意形如xPATx的字符串都可以获得“答案正确”,其中x或者是空字符串,或者仅由字母A组成的字符串; 3.如果aPbTc是正确的,那么aPbATca也是正确的,其中a,b,c均或者是空字符串,或者是仅由字母A组成的字符串。

现在就请你为PAT写一个自动裁判程序,判定哪些字符串是可以获得 “答案正确” 的。

输入格式:

每个测试输入包括1个测试用例。第一行给出一个真整数n(≤10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过100,且不包含空格。

输出格式:

每个字符串的检测结果占一行,如果该字符串可以获得 “答案正确” ,则输出YES,否则输出NO。

输入样例

  • 10
  • PAT
  • PAAT
  • AAPATAA
  • AAPAATAAAA
  • xPATx
  • PT
  • Whatever
  • APAAATAA
  • APT
  • APATTAA

输出样例

  • YES
  • YES
  • YES
  • YES
  • NO
  • NO
  • NO
  • NO
  • NO
  • NO

思路

由题可知,字符串必须有且仅有一个P和一个T,且P在前T在后,二者中间必须有A。P与T前面中间和结尾可任意加入A,但A的总数必须满足结尾A的个数等于前面A的个数与中间A的个数的乘积。

具体实现