The Preliminary Contest for ICPC China Nanchang National Invitational M题 Subsequence

简介: The Preliminary Contest for ICPC China Nanchang National Invitational M题 Subsequence

题意:给你一个文本字符串P,n个字符串si,然后判断字符串si是不是文本串P的子序列

枚举给个字符最早出现的位置就可以了
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
char s[maxn];
int pos[maxn][30];
int dis[maxn];
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  for(int i = n; i >= 1; i--) {
    for(int j = 0; j <= 26; j++) {
      pos[i][j] = pos[i + 1][j];
    }
    pos[i][s[i] - 'a'] = i;
    dis[s[i] - 'a'] = i;
  }
  scanf("%d", &n);
  for(int i = 1; i <= n; i++) {
    scanf("%s", s + 1);
    int m = strlen(s + 1); 
    int start = dis[s[1] - 'a'];
    if(start == 0) {
      printf("NO\n");
      continue;
    }
    int flag = 1;
    for(int j = 2; j <= m; j++) {
      if(pos[start + 1][s[j] - 'a'] == 0) {
        flag = 0;
        break;
      }
      start = pos[start + 1][s[j] - 'a'];
    }
    if(flag) {
      printf("YES\n");
    } else {
      printf("NO\n");
    }
  } 
  return 0;
}
相关文章
|
12月前
|
机器学习/深度学习 人工智能
The Preliminary Contest for ICPC China Nanchang National Invitational K题 MORE XOR
The Preliminary Contest for ICPC China Nanchang National Invitational K题 MORE XOR
53 0
|
12月前
The Preliminary Contest for ICPC China Nanchang National Invitational H题 Coloring Game
The Preliminary Contest for ICPC China Nanchang National Invitational H题 Coloring Game
69 0
|
12月前
The Preliminary Contest for ICPC China Nanchang National Invitational A题 PERFECT NUMBER PROBLEM
The Preliminary Contest for ICPC China Nanchang National Invitational A题 PERFECT NUMBER PROBLEM
50 0
|
12月前
|
机器学习/深度学习 人工智能
The Preliminary Contest for ICPC China Nanchang National Invitational I题 Max answer
The Preliminary Contest for ICPC China Nanchang National Invitational I题 Max answer
75 0
|
12月前
|
机器学习/深度学习
The Preliminary Contest for ICPC China Nanchang National Invitational J题 Distance on the tree
The Preliminary Contest for ICPC China Nanchang National Invitational J题 Distance on the tree
70 0
|
机器学习/深度学习 人工智能 BI
The 15th Chinese Northeast Collegiate Programming Contest
The 15th Chinese Northeast Collegiate Programming Contest
114 0
|
人工智能
atcoder AtCoder Beginner Contest 210 D - National Railway(dp)
atcoder AtCoder Beginner Contest 210 D - National Railway(dp)
85 0
The 15th Chinese Northeast Collegiate Programming Contest C. Vertex Deletion(树形dp)
The 15th Chinese Northeast Collegiate Programming Contest C. Vertex Deletion(树形dp)
86 0
|
移动开发 前端开发
ICPC Latin American Regional 2017-Imperial roads(LCA)
题目大意: 给出n个点,m条边的一个图,q个询问, 每次询问给出两个点u,v,问包含u-v这条边的最小生成树是多少 这道题比较板 首先求一下这个图的最小生成树对于这n个点,最小生成树一定是n-1条边,如果说再加上一条边,一定会构成一个环。 我们把生成的这个最小生成树看作是一个以1为根节点的最小生成树。 所以说在下面的q个询问中,如果说这条边用到了最小生成树中(这条边是最小生成树上的边),那么直接输出当前最小生成树的代价就好;如果说当前这条边没有出现在最小生成树当中,那么最小生成树的权值val加上这条边之后就构成了一个环,求出这两个点所在的环内的最大边权,并将这个边权减去,就是最终结果
98 0
ICPC Latin American Regional 2017-Imperial roads(LCA)