数字游戏

题意:
给出一个长度为n的数字,然后抹去k个数,使得剩下的数最大。

题解:

贪心的思想:让答案串中每一位尽可能大。

我们肯定要用完这k次的,假设有一个答案字符串ans,我们现在遍历给出的串,假设当前遍历到第i位,设其值为a。

我们现在将a与答案串的每一位进行比较,如果a大于答案串中末尾的数,就删去这个末尾的数让a代替它,容易证明这样肯定能使答案更优。

就一直进行这样的操作使k用完为止。

如果k没用完,那么我们就直接删除答案串的最后几位就好了~

代码如下:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5;
int n,m;
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
if(!n && !m) break ;
string s;
cin>>s;
int tmp = n-m;
int k = ;
for(int i=;i<n;i++){
if(i==) continue ;
int a=s[i-]-'',b=s[i]-'';
if(b>a && k<m ){
k++;
s.erase(i-,);
i-=;
n--;
}
}
cout<<s.substr(,tmp)<<endl;
}
return ;
}

最新文章

  1. Android http Request / Response ContentType
  2. SQL SERVER 2008 评估期已过
  3. 洛谷P1410 子序列
  4. iOS开发---百度地图配置流程,2.6.0 版本 支持64位
  5. java 流
  6. Android代码优化工具——Android lint
  7. 卸载Linux内置的AMP软件
  8. HDOJ(HDU) 1587 Flowers(水、、)
  9. [js高手之路]es6系列教程 - 解构详解
  10. 高通ASOC中的codec驱动
  11. ajax 返回Json方法
  12. scala for spark
  13. poj 2886 &quot;Who Gets The Most Candies?&quot;(树状数组)
  14. Tesseract训练
  15. 使用vmimeNET解析账单邮件
  16. 开发app前需要提前准备的资料
  17. Spring Boot 2.0(七):Spring Boot 如何解决项目启动时初始化资源
  18. hdu 3864 D_num Pollard_rho算法和Miller_Rabin算法
  19. mybatis Condition查询
  20. 虚拟机virtualBox安装linux系统 xshell远程连接linux

热门文章

  1. Java - 得到项目中properties属性文件中定义的属性值
  2. 给树莓派Raspbian stretch版本修改软件源
  3. 差点掉坑,MySQL一致性读原来是有条件的
  4. zeppelin的安装与使用
  5. 6,MongoDB 之 Array Object 的特殊操作
  6. WPF系列教程——(二)使用Prism实现MVVM设计模式 - 简书
  7. C语言关键词解释
  8. 绑定host域名 修改手机hosts域名
  9. AD RMS总结
  10. 剑指Offer - 九度1515 - 打印1到最大的N位数