A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
7
PROGRAMMING
REGIONAL
PARIS
CONTEST
CENTRAL
SOUTH
ACM
6
.--.-.--
...---..--....
-.-..-.-.-..-.-..
.-..--...----..-.-..
.--..-.-----..-..-----..-.--.
-.-.----.-....-
4
.--.-.--
.-...---..-
.-...---..-.
.--.-.--
1
.--..-.-......
0
ACM SOUTH CENTRAL REGIONAL PROGRAMMING CONTEST
.-...---..- not in dictionary.
PARIS
题意:给你26个字母的编码,然后给你一些单词,在给你一些组合成的编码,问能否通过编码找出字典里的那个单词,如果可以全部找到就按顺序输出,否则就输出第一个没有找到的
题解:开始是想搞一下模式串匹配,kmp什么之类的,后来想了一下根本没那么麻烦,直接将单词转化为编码,最后插入map里面找就OK啦
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<string> #include<bitset> #include<utility> #include<functional> #include<iomanip> #include<sstream> #include<ctime> using namespace std; #define N int(1e3) #define inf int(0x3f3f3f3f) #define mod int(1e9+7) typedef long long LL; vector<string>v[30]; map<string,string>dict; int main() { #ifdef CDZSC freopen("i.txt", "r", stdin); //freopen("o.txt","w",stdout); int _time_jc = clock(); #endif int w,n; char s[N],t[N],code[N],tmp[N]; for(int i=0;i<26;i++) { scanf("%s%s",s,t); v[s[0]-'A'].push_back(string(t)); } scanf("%d",&n); string ss; for(int i=0;i<n;i++) { ss.clear(); scanf("%s",tmp); for(int j=0;tmp[j];j++) { ss+=v[tmp[j]-'A'][0]; } dict[ss]=string(tmp); } vector<string>ans; while(~scanf("%d",&w)&&w) { int ok=1; ans.clear(); for(int i=0;i<w;i++) { scanf("%s",code); if(dict.count(string(code))) { ans.push_back(dict[string(code)]); } else if(ok) { ok=0; printf("%s ",code); } } if(ok) { for(int i=0;i<ans.size();i++) { if(i)printf(" "); printf("%s",ans[i].c_str()); } printf("\n"); } else { puts("not in dictionary."); } } return 0; }
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
7
PROGRAMMING
REGIONAL
PARIS
CONTEST
CENTRAL
SOUTH
ACM
6
.--.-.--
...---..--....
-.-..-.-.-..-.-..
.-..--...----..-.-..
.--..-.-----..-..-----..-.--.
-.-.----.-....-
4
.--.-.--
.-...---..-
.-...---..-.
.--.-.--
1
.--..-.-......
0
ACM SOUTH CENTRAL REGIONAL PROGRAMMING CONTEST
.-...---..- not in dictionary.
PARIS