1. 程式人生 > 其它 >【Luogu_P1106】刪數問題

【Luogu_P1106】刪數問題

技術標籤:題解

在這裡插入圖片描述

思路:

首先我們想到的是直接刪掉最大的數,可是發現錯了,舉個反例就知道了:
2639 1
顯然刪掉9不是最佳的答案
那我們考慮到底要刪掉什麼
然後又顯然要刪掉6
於是我們得出:刪掉第一個比後面一位大的數
發現舉了幾個例子都沒問題

c o d e code code

#include<iostream>
#include<cstdio>

using namespace std;

int n;
string s;

int main()
{
	cin>>s>>n;
	while(n--)
	{
		int q=0;
		for
(int i=0; i<s.size(); i++) if(s[i]>s[i+1]) { q=i; break; } s.erase(q, 1); } int i=0; while(s[i]=='0'&&i<s.size()-1)i++; while(i<s.size())cout<<s[i], i++; return 0; }