如果你只AC1,2和样例,o(n)算法
查看原帖
如果你只AC1,2和样例,o(n)算法
1303083
ForgottenCat楼主2025/7/22 00:11

大概率是因为样例和用例1,2的首尾字母相同导致的。

#include <bits/stdc++.h>
using namespace std;
string a,b;int n,p,q[26][10000],r[26]{},co[26]{};
int main()
{
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>a>>p;for(char &c:a)c-='a';b.reserve(n);p=a[p-1];
    for(int i=0;i<n;i++)co[a[i]]++;
    for(int i=0;i<n;i++)for(int j=0;;j++)
        if(co[j]){q[j][r[j]++]=a[i];co[j]--;break;}
    b.push_back(q[p][0]);//看这里
    while(--n)p=q[p][r[p]---1],b.push_back(p);
    for(n=b.size()-1;n>=0;n--)cout<<(char)(b[n]+'a');
}

那个地方算是WA的原因

附用例

4

dabc

2

答案:abcd

错误答案:bcdd

2025/7/22 00:11
加载中...