当前位置: 首页 > news >正文

单调栈——数位删减

OK啊这题我做了3个小时——被小bug整爆了

先看题目:

3.  数位删减

题目ID:9789拓展题100分

100 分

时间限制: 1000ms

空间限制: 524288kB

题目描述

题目描述

给出一个数字 x,你需要删去其中 k 位,要求结果为不包含前导零的正整数。问结果最小是多少。

输入格式

第一行一个整数 T 代表数据组数。

每组数据第一行一个整数代表 x,第二行一个整数代表 k。

输出格式

每组数据输出一行,代表答案。

样例输入

5 10000 4 1337 0 987654321 6 66837494128 5 7808652 3

样例输出

1 1337 321 344128 7052

数据规模

1≤T≤1051≤T≤105,1≤x≤105×1051≤x≤105×105,0≤k≤∣x∣0≤k≤∣x∣,∑∣x∣≤5×105∑∣x∣≤5×105。

主要这题比较简单(虽然是绿题

所以,直接开始讲思路

这题我用的是单调栈的解法,还有别的方法,这里不过多介绍

首先

我们肯定要维护我们栈顶最大,其次,我们必须找到第一个减小的值,

举个例子:8 9 6 5 4 2,我们要先找到 6这个数字

然后就简单了,一个一个把数字入栈,再一个一个判断数字和栈顶的大小关系,最后把我们处理好的数组输出即可

代码实现

#include <bits/stdc++.h>
#define int long long
using namespace std;
int T;
int k;
string s;
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cin>>T;while(T--){cin>>s>>k;int le = s.length();if(le <= k){cout<<0<<endl;continue;}int idx = 0;int cn = 10;for(int i = 0;i <= min(k,le-1);i++){if(s[i] != '0' && s[i] - '0' < cn){cn = s[i] - '0';idx = i;}}k -= idx;cout<<s[idx] - '0';int tt = 0;int st[le + 10] = {0};for(int i = idx + 1;i < le;i++){while(tt > 0 && k > 0 && (s[i] - '0' < st[tt])){tt--,k--;}st[++tt] = s[i]-'0';}for(int i = 1;i <= tt - k;i++){cout<<st[i];}cout<<endl;}return 0;
}

最后祝福

    看都看了,给主播一个赞把球球了

    http://www.dtcms.com/a/324351.html

    相关文章:

  • Go语言中切片(Slice)的拷贝
  • 自创论述类文本阅读:论温泉
  • PWM波的频谱分析及matlab 验证[电路原理]
  • 【Linux】使用静态 BusyBox 解决操作系统“塌方”问题
  • Premiere准备工作
  • AQS的详细讲解
  • Java对接支付宝,回调验签失败
  • 活动策划(展会、年会),在线工具能快速出邀请函不?
  • [创业之路-537]:经营分析会 - 销售目标以及支撑、关键策略、主要行动措施、资源保障、人才储备
  • 在 JDK 17 上完整观察 synchronized 锁升级过
  • 嵌入式第二十四课!!linux应用软件编程与文件操作!!!
  • Java 基础编程案例:斐波拉契数与从输入交互到逻辑处理
  • NodeJs学习日志(4):路由合并_环境配置_常用文件目录
  • HarmonyOS之module.json5功能详解
  • AI测试助手如何让Bug无处可藏
  • 湖南(源点咨询)市场调研 如何在行业研究中快速有效介入 中篇
  • 深入浅出DBSCAN:基于密度的聚类算法详解与Python实战
  • github上传文件
  • Navicat 无限适用
  • Tesseract训练个人字库操提高准确率操作全流程(详细)
  • 新手向:Python制作简易音乐播放器
  • Python中的 __name__
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • 异或循环冗余
  • Python设计模式 - 装饰模式
  • 新手向:Python实现文件加密解密工具
  • 旅行者1号无线电工作频段
  • 18.3 全量微调:数据预处理之清洗与准备
  • 机器学习——DBSCAN 聚类算法 + 标准化
  • 实现两个开发板的串口通讯(基于STC8实现)