传送门

题意:本来惯例中文题不解释的, 但是有些人不懂这个题意, 简单的来说, 就是s1每一个的每一个字符都可以和别的字符构成一个子串 == s2。  算了还是惯例中文题意不解释吧。

题解:其实以前写nowcoder的比赛的时候,已经被nowcoder的数据给震惊过了,可是昨天发现有人交随机数过的,有人交Java套数据过的,汗,然后中午被某人催了写一下这个题目。

其实很简单,对于s1, 我们从开头匹配出最先的s2子串,并且对应的位置记录下L[i], 在从末尾开始匹配出最后的s2子串,并且记录下对应的位置R[i]。 其中i表示为s2的第i个字符。

然后对于第i个字符c来说,   所有位置在 L[i] 和 R[i] 之间的 c 都是合法的, 因为 我们可以取 L[i]的前半部分子串, 加上c, 并且加上 R[i]的后半部分子串 就可以构成 s2的串了。

然后稍微贪省力一下,就差分标记一下就好了。

最后遍历一下s1的所有位置, 看一下是否合法就好了。

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout);
  4. #define LL long long
  5. #define ULL unsigned LL
  6. #define fi first
  7. #define se second
  8. #define pb push_back
  9. #define lson l,m,rt<<1
  10. #define rson m+1,r,rt<<1|1
  11. #define max3(a,b,c) max(a,max(b,c))
  12. #define min3(a,b,c) min(a,min(b,c))
  13. typedef pair<int,int> pll;
  14. const int INF = 0x3f3f3f3f;
  15. const LL mod = 1e9+;
  16. const int N = 2e5+;
  17. char s1[N];
  18. char s2[N];
  19. int L[N], R[N];
  20. int sum[N][];
  21. int main(){
  22. ///Fopen;
  23. scanf("%s%s", s1, s2);
  24. int len1 = strlen(s1), len2 = strlen(s2);
  25. int j = -, id ;
  26. for(int i = ; i < len2; i++){
  27. j++;
  28. while(j < len1 && s1[j] != s2[i]) j++;
  29. if(j == len1) {puts("No"); return ;}
  30. id = s2[i] - 'a';
  31. sum[j][id]++;
  32. }
  33. j = len1;
  34. for(int i = len2-; i >= ; i--){
  35. j--;
  36. while(j >= && s1[j] != s2[i]) j--;
  37. if(j == -) {puts("No"); return ;}
  38. id = s2[i] - 'a';
  39. sum[j+][id]--;
  40. }
  41. for(int i = ; i < len1; i++)
  42. for(int j = ; j < ; j++)
  43. sum[i][j] += sum[i-][j];
  44. for(int i = ; i < len1; i++){
  45. id = s1[i] - 'a';
  46. if(!sum[i][id]){puts("No"); return ;}
  47. }
  48. puts("Yes");
  49. return ;
  50. }

    

牛客练习赛17 B-好位置的更多相关文章

  1. 牛客练习赛17 C 操作数(组合数+逆元)

    给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. 执行a = s: 现在 ...

  2. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

  3. 牛客练习赛51 **E-数列** (二分,贪心,构造)

    牛客练习赛51 E-数列 链接:https://ac.nowcoder.com/acm/contest/1083/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  4. 牛客练习赛48 C 小w的糖果 (数学,多项式,差分)

    牛客练习赛48 C 小w的糖果 (数学,多项式) 链接:https://ac.nowcoder.com/acm/contest/923/C来源:牛客网 题目描述 小w和他的两位队友teito.toki ...

  5. 牛客练习赛64 D【容斥+背包】

    牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...

  6. 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D

    目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...

  7. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  8. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  9. 牛客练习赛28-B(线段树,区间更新)

    牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ ​ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, ​ 1 l r 询问区间[l,r]内的元素和 ​ 2 l r 询问区间[l,r]内的 ...

随机推荐

  1. 读写properties文件

    1. 读properties文件 Properties props = new Properties(); try { InputStream in = new FileInputStream(&qu ...

  2. GitPage部署

    前言 该文章主要为了记录我如何在GitPage上面部署博客网站,这里的话,码云上面也有相同的功能. 若有小伙伴担心GitHub担心把中国的访问也禁了的话(大概不会吧),可以在码云上面部署.流程应该是差 ...

  3. .net软件开发脚本规范-JS标准

    一. JS标准 新增页面表单检查方法名称固定为checkForm. 查询页面表单检查方法名称固定为checkSearchForm. 检查表单方法checkForm与checkSearchForm固定放 ...

  4. 数据结构与算法—二叉排序树(java)

    前言 前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度.规则相对是简单的. 再数据结构中树.图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一 ...

  5. 搭建nuget 服务器

    前言 搭建nuget服务器,这是上家公司进行类库管理的方式,其实优点很明显, 1.代码保密 2.代码重复利用效率高,这样不管任何项目只要知道nuget服务器地址就能直接调用 3.可进行版本任意切换提高 ...

  6. Ubuntu18设置mysql的sql_mode

    原因: MySQL 5.7.5及以上功能依赖检测功能.如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引 ...

  7. 对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起

    看到一篇公众号文章<2020年什么编程语言最受欢迎,待遇最高?>,其中对C#的描述如下: 点击阅读原文,看到这是一篇翻译文章:https://codinginfinite.com/top- ...

  8. maven学习(3)pom.xml文件说明以及常用指令

    pom.xml文件的结构: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/ ...

  9. Nginx服务部署

    1 企业常用网站服务 处理静态资源:nginx.apache.Lighttpd处理动态资源:tomcat(java语言编写).php(php语言编写).python(python语言编写)nginx网 ...

  10. jmeter+WebDriver:启动浏览器进行web自动化

    无论是web自动化还是手机app自动化,WebDriver是Selenium的核心模块,jmeter WebDriver 仅支持Firefox.Chrome 和 HTML Unit驱动,暂不支持IE  ...