QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#753421 | #9568. Left Shifting 3 | WTR2007 | TL | 0ms | 0kb | C++20 | 1.2kb | 2024-11-16 12:49:09 | 2024-11-16 12:49:10 |
answer
#include<bits/stdc++.h>
#define fi first
#define se second
#define MULT_TEST 1
using namespace std;
typedef long double ldb;
typedef unsigned long long ull;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
const int N = 200005;
char s[N];
string T = "nanjing";
inline int read() {
int w = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
w = (w << 1) + (w << 3) + ch - 48;
ch = getchar();
}
return w * f;
}
inline void Solve() {
int n, k, ans = 0;
n = read(), k = read();
scanf("%s", s);
for (int i = 0; i <= min(k, 8); i++) {
int res = 0;
for (int op = -1, j = 0; j < n; j++) {
while (T[op + 1] != s[j]) op = (op == 2) ? 0 : -1;
if (T[op + 1] == s[j]) op++;
if (op == 6) op = -1, res++;
}
s[n] = s[0];
for (int j = 0; j < n; j++) s[j] = s[j + 1];
ans = max(ans, res);
}
printf("%d\n", ans);
}
signed main() {
int _ = 1;
#if MULT_TEST
_ = read();
#endif
while (_--) Solve();
return 0;
}
详细
Test #1:
score: 0
Time Limit Exceeded
input:
4 21 10 jingicpcnanjingsuanan 21 0 jingicpcnanjingsuanan 21 3 nanjingnanjingnanjing 4 100 icpc