样例都能过,但测试点全错
查看原帖
样例都能过,但测试点全错
1101744
xingshuyan000楼主2024/11/20 18:47

rt,感觉写的也没啥问题啊,但就是不过。应该是第二问的问题。

#include<bits/stdc++.h>
using namespace std;
priority_queue<int, vector<int>, greater<int>> q;
int main()
{
	int k, m;
	cin >> k >> m;
	//第一问我用了个优先队列去找元素,应该没问题吧 
	q.push(1);
	string s;
	for(int i = 1; i <= k; i ++)
	{
		int t = q.top();
		q.pop();
		s += to_string(t);
		q.push(2 * t + 1);
		q.push(4 * t + 5);
	}
	cout << s << endl;
	//第一问到此结束,应该是第二问的问题 
	int n = s.length();
	int cnt = 0;
	for(int i = 0; i < n; i ++)
	{
		if(s[i] < s[i + 1])
		{
			cnt ++;
			s.erase(i, 1);
			i --;
		}
		if(cnt == m) break;
	}
	cout << s << endl;
	return 0;
}
2024/11/20 18:47
加载中...