P1003 我要通过!
转跳点:
这道题可就整死我了,第三个条件我看了好久才看懂。当我看懂第三个条件之后,就感觉自己之前好蠢。唉,不多说,先上题
样例较长,比较所以可能会有些模糊。题目的要求很明确,符合三个条件,任意一个条件都视为答案正确,然后输出OK。看清楚需求之后,我们来分析一下条件。
条件:
第一种:只含有P、A、T三个字符,少一个都不行,这个意思就是 这字符串至少是长度为 3 的 PAT。
第二种:形如“……”PAT“……”形式的字符串,前后“……”的中的字符只能是由A所构成的字符串且长度必须相等,
也就是形如 APATA, AAPATAA, AAAPATAAA……这样的字符串,也判定为答案正确
第三种:形如aPbTc的字符串如果符合上述两种,那么 aPAbTac 也为“答案正确”。
我们得好好分析一下第三个个条件,单独分析第三个条件会发现无论输入是什么都是OK。所以我们应该结合样例分析。
根据样例里的这三组样例:
AAPATAA --YES;
AAPAATAAAA --YES;
APAAATAA --NO。
这样我们就可以得出一下规律
只要P前面的A的个数乘以PT之间的A的个数的积等于T后面的A的个数且字符串中只含有单个P和T就为YES,否则NO。即条件三中符合a*b=c。然后看条件二不难发现:条件二包含在条件三中。知道这些后,就可以通过了。
最后当然是实现啦:
代码:
1 #include <stdio.h>
2 #include <string.h>
3 #define LEN 101
4
5 int main()
6 {
7 int cnt_str = 0; //字符串个数
8 scanf("%d", &cnt_str);
9 for (int i = 0; i < cnt_str; i++)
10 {
11 char str[LEN];
12 scanf("%s", str); //读入字符串
13 int cnt_P = 0, cnt_T = 0, isRight = 1;
14 int pos_P = 0, pos_T = 0; //设置P、T的下标
15 for (int i = 0; i < strlen(str); i++)
16 {
17 if (str[i] == 'P')
18 {
19 pos_P = i; //记录P的下标
20 cnt_P++;
21 }
22 else if (str[i] == 'T')
23 {
24 pos_T = i; // 记录T的下标
25 cnt_T++;
26 }
27 else if (str[i] != 'A')
28 { //有其他字符
29 isRight = 0;
30 break;
31 }
32 }
33 if (isRight && cnt_P == 1 && cnt_T == 1)
34 { //如果字符串只有PAT三种字符 且 P、T数量为1
35 int l_A = 0, c_A = 0, r_A = 0; // 声明左、中、右 字符A的数量
36 l_A = pos_P;
37 c_A = pos_T - pos_P - 1;
38 r_A = strlen(str) - pos_T - 1;
39 if (c_A > 0 && l_A * c_A == r_A)
40 { //PT之间有A,且A的数量 左*中 = 右
41 printf("YES\n");
42 continue;
43 }
44 }
45 printf("NO\n");
46 }
47 return 0;
48 }
PTA不易,诸君共勉!
P1003 我要通过!的更多相关文章
- P1003 越野跑【tyvj】
/*=========================================================== P1003 越野跑 描述 Description 为了能在下一次跑步比赛中有 ...
- 洛谷 P1003 铺地毯
嗯.... 一道比较水的模拟题.. 刚拿到题的时候被它的数据范围吓到了,二维数组不可能开那么大啊,可是一边做发现测试数据太水 ... 先看一下题吧... 题目描述 为了准备一个独特的颁奖典礼,组织者在 ...
- (水题)洛谷 - P1003 - 铺地毯
https://www.luogu.org/problemnew/show/P1003 一开始觉得是用树套树来区间修改单点查询,但是发现空间不够开. 看了题解发现这个是静态的问题,而且只问一个点的结果 ...
- P1003 铺地毯(noip 2011)
洛谷——P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯 ...
- luogu p1003
P1003 题意 经过多个矩形(1e3)覆盖后后某个坐标属于那个矩形(仅仅是一次询问) 大水题,直接的做法,从后向前处理矩形是否覆盖查询的点,若覆盖,则是该矩形编号 题解 int get_num(){ ...
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
- 洛谷P1003 [NOIP2011提高组Day1T1]铺地毯
P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号 ...
- Java实现蓝桥杯-算法提高 P1003
算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...
- AC日记——铺地毯 洛谷 P1003(水水水水水~)
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- [NOIP2011] 提高组 洛谷P1003 铺地毯
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
随机推荐
- 三种方式安装mariadb-10.3.18
安装环境:CentOS Linux release 7.5.1804 (Core) 一.yum安装 官方网站yum配置方法链接:https://mariadb.com/kb/en/library/yu ...
- table左边固定-底部横向滚动条-demo
图: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- Codeforces1301C. Ayoub's function
本题的收获是,要学会反向思维,正向找包含1的太多,我们就反向找,全排列-只有0的不满足题意的就是答案,一共有n-m个0,m个1,插空法,一共有m+1个地方可以插入0序列,总排列数为(n+1)*n/2, ...
- ubuntu14 安装Express及简单应用
参考资料 [1] 基于Express的Hello World实例 Express 是一个基于 Node.js 平台的极简.灵活的 web 应用开发框架. 1. 环境 工具名 版本 nodejs v11 ...
- mysql视图初探
mysql视图初探 官方例子如下,从官方的例子就可以看出来视图就是提供一种快捷查询.用视图来查询一些常用的结果. mysql> help create view; Name: 'CREATE V ...
- 谁说5G网络无敌?第六代Wi-Fi表示不服
导读 随着第五代移动通信技术(5G)正式商用,同属第五代的Wi-Fi技术(802.11ac)的处境就非常尴尬了,除了不存流量费用外,无论是网速.设备连接数还是网络延迟,5G都拥有秒杀802.11ac的 ...
- 用 lastIndexOf()、substr()、split()方法截取一段字符串
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索. split() 方法用于把一个字符串分割成字符串数组,抽取到分割符前面部分. subst ...
- re模块补充 configparse模块
import rere.findall("(?:abc)+","abcabcabc")--->['abcabcabc'] import configpar ...
- ubuntu最基本的软件
输入法: https://www.cnbawwwlogs.com/zlslch/p/6943318.html qq: http://www.linuxidc.com/Linux/2016-09/134 ...
- [Hello 2020] C. New Year and Permutation (组合数学)
[Hello 2020] C. New Year and Permutation (组合数学) C. New Year and Permutation time limit per test 1 se ...