【CF1509B】TMT
传送门
题目
给一个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月14日,身在台湾养病而久违露面的的创新工场CEO李开复,像往常在公开场合一样,穿着一身笔挺的黑色西服,做了一场题为<数位革命:创新创业的黄金时代>公开演讲. "今天的创业时代 ...
- overleaf怎么输入中文_【LATEX】在线latex排版工具Overleaf-制作中文简历-详细教程...
[LATEX]在线latex排版工具Overleaf-制作中文简历-详细教程 发布时间:2018-08-11 21:54, 浏览次数:2856 , 标签: LATEX Overleaf 第一次采用这种 ...
- 【控制】拉普拉斯拉氏变换原理分解理解
扩展链接: [控制]Z变换及其原理讲解 [Matlab 控制] 拉氏变换和Z变换 拉氏变换原理分解理解 拉氏变换原理分解理解 1. 拉普拉斯变换 2. 拉普拉斯逆变换 (1)反演公式 (2)查表法(分 ...
- 蓝桥杯第十二讲--图论【习题】
文章目录 前言 地牢大师 题目要求 思路分析 代码 全球变暖 题目要求 思路分析 代码 单链表 题目要求 思路分析 代码 大臣的旅费 题目要求 思路分析 代码 (vectorvectorvector ...
- 【控制】Z变换及其原理讲解
扩展链接: [控制]拉普拉斯拉氏变换原理分解理解 [Matlab 控制] 拉氏变换和Z变换 Z变换及其原理讲解 简介 定义 说明 Z 变换求解方法 1)级数求和法 2)部分分式法 基本定理 1)线性定 ...
- 【CentOS】利用Kubeadm部署Kubernetes (K8s)
[CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- 【C#】类——里式转换
类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...
- 【C#】Out与ref是干什么的?
关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...
最新文章
- 面试者被公司粗暴对待,进门讲了三句话被赶出:包括一句你好
- mysql数据库主从同步
- 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
- tomcat(18)部署器
- linux基础知识——进程相关概念
- hdu 5631 Rikka with Graph(图)
- php数组有没有类似next方法,PHP 数组current跟next用法
- MyEclipse中使用Proxool+mysql连接池的方法
- Android 蓝牙开发之搜索、配对、连接、通信大全
- sai笔记1-sai安装
- C++ Beep函数播放歌曲《千本樱》
- 进程管理(一)--进程管理的基本概念
- 搜索进阶-迭代加深搜索
- android中按两次返回键返回桌面或退出程序
- ShadowLayout 实现阴影效果
- [读书笔记]《自控力》
- 数字IC后端设计技术全局观
- 老舍茶馆|北京老舍茶馆|老舍茶馆门票|老舍茶馆官方网站
- nbu进程的异常造成备份出错
- P228 10.2.2 希尔排序 完整源文件
热门文章
- Vue3中Vuex的使用
- springboot中使用druid查询sqlite报错getFetchDirection error ResultSet closed
- 学海无涯!2021年抓住金三银四涨薪好时机,持续更新中
- cesium 显示纯色地球
- 第4套 从零到商业实战篇 斗战神篇
- 重庆卫生副高考试成绩查询2021,2021年重庆卫生资格成绩查询时间及查分入口【6月4日起】...
- QT安装段错误segmentation fault
- 为什么计算机屏幕分辨率会,为什么计算机屏幕变窄
- python3操作USB设备
- 鹏城实验室开源技术总师余跃:新一代人工智能开源生态的探索与实践