90分求调
查看原帖
90分求调
1115392
small_moon楼主2024/7/6 17:17

最后一个点TLE了

代码如下

#include<bits/stdc++.h>
using namespace std;
int s, t, w;
string st;
int v[110];
void dfs(int k)
{
	if (k < 1) return;
	if (v[k] > t)
	{
		if (k == 1) exit(0);
		v[k] = s;
		v[k - 1]++;
		dfs(k - 1);
	}
	return;
}
bool check()
{
	for (int i = 1; i <= w; i++)
		if (v[i] <= v[i - 1]) return 0;
	return 1;
}
int main()
{
	cin >> s >> t >> w >> st;
	for (int i = 0; i < w; i++)
		v[i + 1] = st[i] - 'a' + 1;
	for (int i = 1; i <= 5; i++)
	{
		if (v[1] == t) return 0;
		v[w]++;
		dfs(w);
		while (!check())
		{
			v[w]++;
			dfs(w);
		}
		for (int i = 1; i <= w; i++) putchar(v[i] + 'a' - 1);
		printf("\n");
	}
	return 0;
}
2024/7/6 17:17
加载中...