前言
因为是 noip 老题目,所以 洛谷 也有经验~
正文
本题不需要太强的思维,只是需要一定码题能力,毕竟是恶心模拟。
因为太水了,直接贴 code:
#include <bits/stdc++.h>
using namespace std;
int s, t, w;
bool judge (int ch, int a, string st) {
for (int i = 0; i < w; i ++)
if (char (ch - 1 + 'a') == st[i] && i != a)
return 0;
return 1;
}
bool check (string &st) {
for (int i = w - 1; ~i; i --) {
int num = st[i] + 2 - 'a';
while (!judge (num, i, st) && num <= t)
num ++;
if (num > t)
continue;
st[i] = char (num - 1 + 'a');
for (int j = i + 1; j < w; j ++)
st[j] = st[i] + j - i;
return 1;
}
return 0;
}
signed main() {
int op = 0;
string str;
scanf ("%d%d%d", &s, &t, &w);
cin >> str;
while (check (str) && op < 5) {
op ++;
cout << str << endl;
}
return 0;
}
这个题水?我直接踩好吧
《太水了》
难道不是吗?
难死了,你是老油条你见的多了就水了
这是模拟题……主要是代码实现……没思维啊?
就当我没说
喵
百年老题