CF1673B 题解
MatrixGroup · · 题解
- 解法
最妙 Div2 B。
引理:符合条件的字符串,令其不同字母数量是
证明:
如果
如果
于是判断一下就行。复杂度
- 代码
代码是以
#include <bits/stdc++.h>
#define rep1(i,n) for(int i=1,_##i##__end=(n);i<=_##i##__end;++i)
using namespace std;
int t,l,e;
char s[200005];
bool ap[28];
void Q()
{
scanf("%s",s+1);e=0;
l=strlen(s+1);
memset(ap,0,sizeof(ap));
rep1(i,l) ap[s[i]&31]=1;
rep1(i,26) if(ap[i]) ++e;
rep1(i,l)
{
if(s[i]!=s[(i-1)%e+1])
{
puts("no");
return ;
}
}
rep1(i,e) rep1(j,e) if(s[i]==s[j]&&i!=j)
{
puts("No");return ;
}
puts("yes");
}
int main()
{
scanf("%d",&t);
while(t--)
Q();
return 0;
}