题意:构造 n +1 个字符串,使得第 i 和 i+1 个字符串的公共前缀长度为 a[i].
题解:代码被hack了....看完官方题解才发现有更简单的方法,第一个串全部构造成'a',然后前缀相等的部分我们不用管,只需要改变上一个字符串的第一个非前缀字符就行了,后面也是不用管,然后直接输出。
AC代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <cmath>
#include <cstring>
#include <algorithm>
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef long long ll;
const int maxn=1e6+5;
void solve(){int n;cin>>n;string s=string(200,'a');cout<<s<<endl;for(int i=1;i<=n;i++){int x;cin>>x;s[x]=s[x]=='a'?'b':'a';cout<<s<<endl;}
}
main(){IOS;int t;cin>>t;while(t--)solve();
}