P1106 删数问题
2024-09-05 16:41:07
题目描述
键盘输入一个高精度的正整数NN(不超过250250位) ,去掉其中任意kk个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的NN和kk,寻找一种方案使得剩下的数字组成的新数最小。
输入格式
nn (高精度的正整数)
kk(需要删除的数字个数)
输出格式
最后剩下的最小数。
输入输出样例
输入 #1复制
175438
4
输出 #1复制
13 思路:从前往后枚举,删除上升子串的最后一位。也就是如果s[i]>s[i+1],那么就删除s[i];
由于删除操作比较麻烦,可以采用第i+1到n位向前移一位的方式。
还要考虑前导0的问题。
#include<iostream>
#include<string>
using namespace std; int main()
{
string s;
int k;
cin >> s;
cin >> k;
int k1=k;
int q;
while(k--)
{
int flag=;
for(int i=; i<s.size(); i++)
{
if(s[i]>s[i+])
{
q=i;
flag=;
break;
}
}
if(flag)
{
for(int i=q; i<s.size(); i++)
{
s[i]=s[i+];
}
}
}
int num=;
while(num<s.size()-k1&&s[num]=='')
num++;
if(num==s.size()-k1)
cout << << endl;
else
{
for(int i=num;i<s.size()-k1;i++)
cout << s[i];
cout << endl;
}
return ;
}
最新文章
- java代码解压zip文件
- jquery实现更多内容效果
- java IO基础操作
- 记录nginx 搭建集群环境踏过的坑
- C++语法 初始化列表 数组引用
- 权限管理:(RBAC)
- select下拉框美化
- [转]matlab如何复制spectrum scope的图
- HDU 1712 ACboy needs your help (分组背包模版题)
- Linux入门1
- SQLite数据库如何存储和读取二进制数据
- Thinkphp入门 五 —模型 (49)
- js实现页面重定位的几种方法
- Intellij 设置生成serialVersionUID的方法
- 需求分析&;原型改进
- MySQL 数据库设计总结
- Java反射机制小结和实际操作
- Nginx+keepalived高可用配置实战(内附彩蛋)
- ES6中const、let与var的对比详解
- vm ware虚拟机ping不通解决办法