博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva11491
阅读量:4114 次
发布时间:2019-05-25

本文共 526 字,大约阅读时间需要 1 分钟。

题目大意:

  给一串字符,其中包括n个字符,要求删除d个字符,使得剩下的字符尽量大

由于要使得最后剩余的字符串尽量大,我们可以边 输入边处理。

 

贪心策略:

当已经存在的字符小于n-d时,把字符加进去,如果 k+n-i>n-d(k是已经保存下来的字符个数,n是总个数,i是当前输入的字符个数,d数需要删除的字符个数,此式子代表意义:已经剩余的字符个数,大于需要剩余字符的个数)此时需要删除,

代码如下:

#include 
#include
#include
#include
#include
#include
#define mp make_pair
using namespace std;const int MAXN=200050;int main(){ int n,d; while(~scanf("%d%d",&n,&d)&&(n+d)) { int k=0; char c; getchar(); char a[100000]; for(int i=0; i
0&&c>a[k]&&k>i-d) k--; if(k+d

转载地址:http://fygsi.baihongyu.com/

你可能感兴趣的文章
Golang面试考题记录 ━━ 旋转图像~~二维数组旋转90度
查看>>
Golang面试考题记录 ━━ 有效的数独,没发现什么特别好的算法,就是暴力,结果也差不多
查看>>
Golang面试考题记录 ━━ 反转字符串,一种思路几种细节的不同结果
查看>>
Golang面试考题记录 ━━ 整数反转 解答及扩展的三个知识点
查看>>
Golang面试考题记录 ━━ 字符串中的第一个唯一字符 ,拓展:ASCII和strings字符串查找的用法
查看>>
Golang面试考题记录 ━━ 有效的字母异位词,久违的双100%,拓展reflect.DeepEqual()用法和[26]int{}的值
查看>>
Golang面试考题记录 ━━ 验证回文串,多种方法涉及双指针、strings、unicode和regexp
查看>>
Golang面试考题记录 ━━ 字符串转换整数 (atoi),知识点ascii、rune、uint8、string、char等转换
查看>>
Golang面试考题记录 ━━ 实现 strStr() 函数,截然不同三种方案,效率都差不多,双100%
查看>>
Golang面试考题记录 ━━ 外观数列 , 了解递归、bytes.Buffer和闭包
查看>>
学习日志 ━━ 理解递归(使用go语法举例)
查看>>
Golang面试考题记录 ━━ 最长公共前缀,字符串就是切片,复习[]byte、[]rune、[]uint8、[]int32和单引号
查看>>
Golang学习日志 ━━ 单向链表
查看>>
Golang面试考题记录 ━━ 删除链表中的节点,首先明白什么是链表,其次语文要好能看懂题
查看>>
买股票就是为卖好价钱 十种不应下单的情况
查看>>
用.NET建立Office Add-in
查看>>
数码相片冲印尺寸对照表
查看>>
用Photoshop制作1寸和2寸的照片
查看>>
HTTP协议
查看>>
9个月的婴儿的喂养
查看>>