题目
思路
我们可以把这道题拆成2道题:
删数问题(别误会,这是黄题)和丑数
然后我们把它们合并在一起就行了
code:
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
int k,m;
priority_queue<int,vector<int>,greater<int> > p;
string u;
void f(int x)
{
if (x==0) return;
char y=x%10+'0';
f(x/10);
u+=y;
return;
}
int main()
{
cin>>k>>m;
p.push(1);
for (int i=1;i<=k;i++)
{
int x=p.top();
p.pop();
f(x);
p.push(x*2+1);
p.push(x*4+5);
}
cout<<u<<endl;
for (int i=1;i<=m;i++)
{
int j;
for (j=0;j<u.size()-1;j++)
{
if (u[j]<u[j+1])
{
break;
}
}
u.erase(j,1);
}
cout<<u;
return 0;
}