题目链接:点击查看

题目大意:给出一个长度不超过100且只包含小写字母的字符串,现在规定,如果某个位置 i 的相邻位置存在着当前位置所代表字母的前一个字母,即 i - 1 和 i + 1 中存在着 a[ i - 1] = a[ i ] - 1 或 a[ i + 1 ] = a[ i ] - 1 ,则代表位置 i 的字母可以删除,两侧子串拼接起来,问最多可以进行删除操作多少次

题目分析:读懂题后首先需要知道,字母 ' a ' 是一定不可能删除的,因为题目中规定 a 没有前一个字母,这样的话我们就可以贪心,每次对最大的字母进行尝试删除,因为字符串最长只有100,所以我们每次可以 26 * n 的时间复杂度找到一个可以删除的字母并进行删除,最多只需要删除 n 次,总时间复杂度也就是 26 * n * n,每次只删除一个字母,直到不能删除为止

删除操作直接模拟就好了,配合stl的string类可以轻松完成

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=110;string s;int n;bool solve()//尝试删除一个字母
{for(int j=26;j>=1;j--)for(int i=0;i<s.size();i++){if(s[i]!='a'+j)continue;if(i>0)if(s[i-1]=='a'+j-1){s.erase(i,1);return true;}if(i<s.size()-1)if(s[i+1]=='a'+j-1){s.erase(i,1);return true;}}return false;
}int main()
{
#ifndef ONLINE_JUDGE
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);//ccab//ddbcscanf("%d",&n);cin>>s;int ans=0;while(solve())ans++;printf("%d\n",ans);}

CodeForces - 1321C Remove Adjacent(贪心+模拟)相关推荐

  1. CodeForces 1463 C. Busy Robot 模拟

    CodeForces 1463 C. Busy Robot 模拟 题目大意: 有一个一维坐标轴,在最初时刻有个机器人位于坐标 0 0 0 位置,有 n n n 个命令,对于每一个命令在 t i t_i ...

  2. 校内hu测(10.6T2,T3)(乱搞+贪心+模拟)

    @liu_runda T2.便(then) [题目描述] 给出一个R*C的棋盘.共有R行C列,R*C个格子.现要在每个格子都填一个非负整数.使得任意一个2*2的正方形区域都满足这样的性质:左上角的数字 ...

  3. 【NOIP2013】积木大赛(差分数组,贪心模拟)

    题目 原题链接 问题描述 分析 直观思路--贪心模拟:每次都处理最长正整数区段. 以[2,3,4,1,2][2,3,4,1,2][2,3,4,1,2]为例: [2,3,4,1,2]⟹[1,2,3,0, ...

  4. Codeforces Round #656 (Div. 3) F. Removing Leaves 贪心 + 模拟

    传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个贪心策略就是每次都找一个叶子节点最多的点,让后删掉他的kkk个叶子节点,现在我们就来考虑如何模拟这个过程. 我们整一个vector<s ...

  5. 【CodeForces Round #550】A-F | 模拟 | 贪心 | 高精 | BFS | 二分图 | E

    今年怎么没有愚人节比赛了   CF你看看人家洛谷   唉鸭原来那边还没到愚人节呢- 愚人节比赛还是有的,在今晚 qwq [CodeForces 1144   A-F] Tags:模拟 贪心 BFS 高 ...

  6. CodeForces - 1362E Johnny and Grandmaster(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个基数 p ,再给出 n 个指数 k ,换句话说,现在有一个长度为 n 的序列,每个元素都是 p^k[ i ] ,现在需要将这个序列分到两个集合中,使得两个集合元素 ...

  7. CodeForces - 1303D Fill The Bag(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个背包,容量为 k ,再给出 n 个物品,每个物品的大小保证是 2 的幂次,现在可以进行操作,使得一个物品分为大小相等的,且大小等于原物品一半的两个物品,比如一个物 ...

  8. Codeforces Round #631 (Div. 2) - Thanks, Denis aramis Shitov! E. Drazil Likes Heap(贪心+模拟)

    题目链接 思路:这个题就是阅读理解题,能理解题意的话应该是秒出的那种,着重解释一下题意. 题意是给定一棵完全二叉树(共2^h-1个结点),这个二叉树满足大顶堆的性质也就是父亲结点a[i]大于等于儿子结 ...

  9. CodeForces - 946E Largest Beautiful Number(贪心+模拟)

    题目链接:点击查看 题目大意:给出一个数位长度为偶数的数字 n,需要求出一个比 n 小的,且所有数位重新排列后可以形成回文串,要求这个数字尽可能大 题目分析:从最低位开始贪心,依次枚举每一位的数字,然 ...

最新文章

  1. c语言流程图图裂代表的意义,程序流程图的意义
  2. python的数值可以转换为字符串_python 数值转换为字符串Python对HTML转义字符进行反转义...
  3. 数据结构与算法:树与二叉树python实现
  4. vue-cli3使用svg图标的详细步骤
  5. (dag模型+最长路+字典序)嵌套矩形
  6. 草稿 断开始datagrewvies 01
  7. python从云端服务器读数据_audio 读取服务器文件
  8. SendMessage wMsg常量值参考
  9. leetcode 45 python
  10. Python入门教程丨1300多行代码,让你轻松掌握基础知识点
  11. 100个实用的 Linux Shell 脚本经典案例
  12. c语言习题 编写自定义函数 volume_c,功能是求正方体的体积(要求:正方体的的边长 a 在主函数中做输入,在主函数中调用函数 volume_c,在主函数中输出正方体体积,a 为int 型变量)。
  13. 思科模拟器路由器配置
  14. Android—Gradle教程(一)
  15. MySQL 查询各科前三名
  16. Java如何输出Word报告
  17. python命令行调试_Linux 黑乎乎的命令行下,如何调试 Python?
  18. 数字金额转换大写 先写个完整的然后将如零拾替换成零
  19. ad18放置标尺(测量)
  20. java饲养员喂动物_你真的想当一名动物饲养员?

热门文章

  1. MySQL sql99语法—非等值连接
  2. MySQL非等值连接
  3. RocketMQ中的Topic和JMS的queue有什么区别?
  4. Java虚拟机对synchronized的优化
  5. ThreadLocal的空指针异常问题
  6. 百万数据报表导出:使用SXSSFWorkbook完成百万数据报表打印
  7. MapReduce运行机制-Map阶段
  8. tomcat_部署项目的方式
  9. 口令加密算法 - Java加密与安全
  10. 操作系统的线程和进程的区别_进程,线程,协程,有何区别?