规定 串长度为5 以内
且串中的字母必须是递增的
然后把他们按照字典序编号
而后若干询问如果不合法就0 合法就输出字典序
解法:DFS预处理一下每个串的字典序,然后直接读入输出就好
1A
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
int num;
int len;
char ans[10];
void dfs(int k,int st)
{
if (k==len-1)
{
string tem;
for (int i=0;i<len;i++)
tem+=ans[i];
mp[tem]=++num;
return;
}
for (int i=st;i<26;i++)
{
ans[k+1]='a'+i;
dfs(k+1,i+1);
}
}
void preGao()
{
num=0;
for (len=1;len<=5;len++)
dfs(-1,0);
}
int main()
{
// freopen("a.in","r",stdin);
preGao();
string tem;
while(cin>>tem)
{
if (mp.find(tem)==mp.end())
cout<<0<<endl;
else
cout<<mp[tem]<<endl;
}
return 0;
}