删数问题
来源:互联网 发布:阿沁淘宝店叫什么 编辑:程序博客网 时间:2024/05/22 00:30
给你一个N位数,从中去掉K个数字,能得到的最大的数是多少?
INPUT
有T测试数据,每组测试数据第一行由N和K2个整数组成(1 ≤ K < N ≤ 500 000),第二行是N位数(非0开头)。
OUTPUT
对每组数据输出去掉K个数字得到的最大数。
SAMPLE TESTS
IN
OUT
3
4 2
1924
7 3
1231234
10 4
4177252841
94
3234
775841
贪心思想:
从头遍历k次,每次遇到不递减的数字,就将其删除掉,并结束该次循环。每次循环都如上所做。
其中如果遇到从头到尾一直都是递减的,则删除最后一个数字。
代码实现:
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){ int m; cin>>m; while(m--){ int n1,n2; scanf("%d%d",&n1,&n2); // cin>>n1>>n2; string a; cin>>a; for(int i=0;i<n2;i++){ int j; string::iterator it; //指针 it=a.begin(); int temp; for(j=0;j<n1-1;j++){ temp=n1; if(a[j]<a[j+1]){ a.erase(it); //string中的删字符函数 n1--; break; } it++; } if(j>=temp-1){ a.erase(it); n1--; } } cout<<a<<endl; } return 0; }
- 删数问题
- 删数问题
- 1298 删数问题
- 删数问题
- 【贪心】删数问题
- 【贪心】删数问题
- 删数问题 队内赛
- 删数问题
- 删数问题
- 8605 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- sdut2072 删数问题
- 删数问题
- 关于memset,memcpy的用法
- C语言中的位域的使用
- 正整数的素数表达式
- 三角形的有向面积
- Linux安装JDK1.7
- 删数问题
- Word 2007中添加MathType选项卡
- Letter Grid(动规)
- GCD & LCM 一个神奇的式子
- 图 poj 1985
- 图 poj 1511
- 旋转卡壳
- USC newweek2 H hdu 3335
- USC newweek2 G