fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef int t;
  4. typedef long long ll;
  5. ll dp[10005];
  6. string d[26] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---",
  7. "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-",
  8. ".--", "-..-", "-.--", "--.."};
  9. string w[10005];
  10. int main(){
  11. ios_base::sync_with_stdio(false);
  12. cin.tie(0); cout.tie(0);
  13. int numtest;
  14. cin >> numtest;
  15. while (numtest--) {
  16. memset(dp, 0, sizeof dp);
  17. string s; cin >> s;
  18. s = " " + s;
  19. t n; cin >> n;
  20. string x;
  21. dp[0] = 1;
  22. for(t i = 0; i < n; i++){
  23. cin >> x;
  24. for(t j = 0; j < x.size(); j++){
  25. w[i] += d[x[j]-'A'];
  26. }
  27. }
  28. for(t i = 1; i < s.size(); i++){
  29. for(t j = 0; j < n; j++){
  30. if(i < w[j].size()) continue;
  31. if(s.substr(i-w[j].size()+1, w[j].size()) == w[j]){
  32. dp[i] += dp[i-w[j].size()];
  33. }
  34. }
  35. dp[i] %= 1000000;
  36. }
  37. cout << dp[s.size()-1] << '\n';
  38. }
  39.  
  40.  
  41. }
  42.  
Success #stdin #stdout 0s 5316KB
stdin
1 
.---.--.-.-.-.---...-.---. 
6 
AT 
TACK 
TICK 
ATTACK 
DAWN 
DUSK 
stdout
2