传送门

题目

给一个string里面都是T或M
要求能否拆分成若干个TMT的subsequence的链接

思路

肯定是count + comparison
M的两边的个数都应该是大于等于M的

所以我们发现不合法的情况:
1.正向遍历统计,某个i位置存在cntM > cntT
2.反向遍历统计,某个i位置存在cntM > cntT
3.总数不成两倍关系

ac代码:

//
// Created by 009 on 2022/3/8.
//// 找规律,只要两端是T且T:M = 2:1就好了#include<bits/stdc++.h>
using namespace std;int main() {int t;cin >> t;while(t--) {int n;cin >> n;string v;cin >> v;int sumT = 0;int sumM = 0;bool flag = true;// 考虑不合法的情况// 左边开始遍历,若M的个数大于T的个数,凉凉for(int i = 0; i < n; i++) {if(v[i] == 'T') sumT += 1;else sumM += 1;if(sumM > sumT) {cout << "NO" << endl;flag = false;break;}}if(!flag) continue;// 右边开始遍历,若M的个数大于T的个数,凉凉sumT = 0, sumM = 0;for(int i = n - 1; i >= 0; i--) {if(v[i] == 'T') sumT += 1;else sumM += 1;if(sumM > sumT) {cout << "NO" << endl;flag = false;break;}}if(!flag) continue;// 最后判断总个数是否是两倍关系if(sumT != sumM * 2) cout << "NO" << endl;else cout << "YES" << endl;}return 0;}

总结:

greedy最突出的特征就是累计求和 然后比较 然后考虑正向结合反向一起判断

【CF1509B】TMT相关推荐

  1. 【人物】李开复:未来属于创新者和小公司

    1月14日,身在台湾养病而久违露面的的创新工场CEO李开复,像往常在公开场合一样,穿着一身笔挺的黑色西服,做了一场题为<数位革命:创新创业的黄金时代>公开演讲. "今天的创业时代 ...

  2. overleaf怎么输入中文_【LATEX】在线latex排版工具Overleaf-制作中文简历-详细教程...

    [LATEX]在线latex排版工具Overleaf-制作中文简历-详细教程 发布时间:2018-08-11 21:54, 浏览次数:2856 , 标签: LATEX Overleaf 第一次采用这种 ...

  3. 【控制】拉普拉斯拉氏变换原理分解理解

    扩展链接: [控制]Z变换及其原理讲解 [Matlab 控制] 拉氏变换和Z变换 拉氏变换原理分解理解 拉氏变换原理分解理解 1. 拉普拉斯变换 2. 拉普拉斯逆变换 (1)反演公式 (2)查表法(分 ...

  4. 蓝桥杯第十二讲--图论【习题】

    文章目录 前言 地牢大师 题目要求 思路分析 代码 全球变暖 题目要求 思路分析 代码 单链表 题目要求 思路分析 代码 大臣的旅费 题目要求 思路分析 代码 (vectorvectorvector ...

  5. 【控制】Z变换及其原理讲解

    扩展链接: [控制]拉普拉斯拉氏变换原理分解理解 [Matlab 控制] 拉氏变换和Z变换 Z变换及其原理讲解 简介 定义 说明 Z 变换求解方法 1)级数求和法 2)部分分式法 基本定理 1)线性定 ...

  6. 【CentOS】利用Kubeadm部署Kubernetes (K8s)

    [CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...

  7. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  8. 【C#】类——里式转换

    类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...

  9. 【C#】Out与ref是干什么的?

    关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...

最新文章

  1. 面试者被公司粗暴对待,进门讲了三句话被赶出:包括一句你好
  2. mysql数据库主从同步
  3. 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
  4. tomcat(18)部署器
  5. linux基础知识——进程相关概念
  6. hdu 5631 Rikka with Graph(图)
  7. php数组有没有类似next方法,PHP 数组current跟next用法
  8. MyEclipse中使用Proxool+mysql连接池的方法
  9. Android 蓝牙开发之搜索、配对、连接、通信大全
  10. sai笔记1-sai安装
  11. C++ Beep函数播放歌曲《千本樱》
  12. 进程管理(一)--进程管理的基本概念
  13. 搜索进阶-迭代加深搜索
  14. android中按两次返回键返回桌面或退出程序
  15. ShadowLayout 实现阴影效果
  16. [读书笔记]《自控力》
  17. 数字IC后端设计技术全局观
  18. 老舍茶馆|北京老舍茶馆|老舍茶馆门票|老舍茶馆官方网站
  19. nbu进程的异常造成备份出错
  20. P228 10.2.2 希尔排序 完整源文件

热门文章

  1. Vue3中Vuex的使用
  2. springboot中使用druid查询sqlite报错getFetchDirection error ResultSet closed
  3. 学海无涯!2021年抓住金三银四涨薪好时机,持续更新中
  4. cesium 显示纯色地球
  5. 第4套 从零到商业实战篇 斗战神篇
  6. 重庆卫生副高考试成绩查询2021,2021年重庆卫生资格成绩查询时间及查分入口【6月4日起】...
  7. QT安装段错误segmentation fault
  8. 为什么计算机屏幕分辨率会,为什么计算机屏幕变窄
  9. python3操作USB设备
  10. 鹏城实验室开源技术总师余跃:新一代人工智能开源生态的探索与实践