https://codeforces.com/contest/1194/problem/C
好像没什么好说的,要能构造s必须是t的子序列,并且相差的字符集合d是p的子集。
用双指针法求两遍子序列就可以了,甚至不需要sort,假如用桶排的话就是O(qn)的。

下面这个错在哪里呢?

正确的:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int n;
char s[105];
char t[105];
char p[105];
char d[105];bool is_sub1(char *s, char *t) {int i = 0, j = 0, dl = 0;int sl = strlen(s);int tl = strlen(t);while(i < sl && j < tl) {if(s[i] == t[j]) {i++;j++;} else {d[dl++] = t[j];j++;}}if(i == sl) {//s完全是t的子序列while(j < tl) {//把剩下的t都当做失配复制了d[dl++] = t[j];j++;}d[dl] = '\0';sort(d, d + dl);sort(p, p + strlen(p));return true;} else {return false;}
}bool is_sub2(char *s, char *t) {int i = 0, j = 0;int sl = strlen(s);int tl = strlen(t);while(i < sl && j < tl) {if(s[i] == t[j]) {i++;j++;} else {j++;}}if(i == sl) {return true;} else {return false;}
}int main() {
#ifdef Yinkufreopen("Yinku.in", "r", stdin);//freopen("Yinku.out", "w", stdout);
#endif // Yinkuwhile(~scanf("%d", &n)) {while(n--) {scanf("%s%s%s", s, t, p);if(is_sub1(s, t) && is_sub2(d, p)) {puts("YES");} else {puts("NO");}}}
}

WA2的:
没有保证所有的i一定匹配,要是全部的j已经匹配完了其实也是失配了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int n;
char s[105];
char t[105];
char p[105];
char d[105];bool is_sub1(char *s, char *t) {int i = 0, j = 0, dt = 0;int sl = strlen(s);int st = strlen(t);for(; i < sl; i++) {while(j < st) {if(t[j] != s[i]) {d[dt++] = t[j];j++;if(j == st) {return false;}} else {j++;break;}}}if(i == sl) {while(j < st) {d[dt++] = t[j];j++;}sort(d, d + dt);sort(p, p + strlen(p));d[dt] = '\0';//cout << d << endl;//cout << p << endl;return true;} else {return false;}
}bool is_sub2(char *s, char *t) {int i = 0, j = 0;int sl = strlen(s);int st = strlen(t);for(; i < sl; i++) {while(j < st) {if(t[j] != s[i]) {j++;if(j == st) {return false;}} else {j++;break;}}}if(i == sl) {return true;} else {return false;}
}int main() {
#ifdef Yinkufreopen("Yinku.in", "r", stdin);//freopen("Yinku.out", "w", stdout);
#endif // Yinkuwhile(~scanf("%d", &n)) {while(n--) {scanf("%s%s%s", s, t, p);if(is_sub1(s, t) && is_sub2(d, p)) {puts("YES");} else {puts("NO");}}}
}

转载于:https://www.cnblogs.com/Yinku/p/11186616.html

Codeforces - 1194C - From S To T - 子序列 - 排序相关推荐

  1. CodeForces 1213F (强联通分量分解+拓扑排序)

    传送门 •题意 给你两个数组 p,q ,分别存放 1~n 的某个全排列: 让你根据这两个数组构造一个字符串 S,要求: (1)$\forall i \in [1,n-1],S_{pi}\leq S _ ...

  2. Mr. Kitayuta‘s Technology CodeForces - 505D(并查集+拓扑排序或dfs找环) 题解

    题目  Shuseki Kingdom is the world's leading nation for innovation and technology. There are n cities ...

  3. CodeForces - 1324D Pair of Topics (分治+排序)

    CodeForces - 1324D Pair of Topics 题目大意: 这题大意ai+aj>bi+bj全在这个式子上,就问你满足的组合有几种, 题目分析: 整理一下,得到(ai-bi)+ ...

  4. Codeforces Round #481 (Div. 3) F. Mentors(排序,暴力,map记忆化)

    题目 题意: 如果一个程序员比另一个程序员的能力值高,而且这两个程序员不在争吵状态,则能力值较高的程序员可以成为另一个程序员的老师,求每个程序员能成为多少其他程序员的老师. 思路: 先啥都不管,结构体 ...

  5. codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)

    题目链接 题意:给出一个有n个数的序列,还有一个k,问在这个序列中有多少个子序列使得sum[l, r] = k^0,1,2,3-- 思路:sum[l, r] = k ^ t, 前缀和sum[r] = ...

  6. 插入排序(含希尔排序)的C/C++实现

    直接插入排序 直接贴核心代码 for(i=1;i<n;i++)//n为数组长度{t=a[i];//取出待比较元素for(j=i-1;j>=0&&a[j]>t;j--) ...

  7. 数据结构排序算法实验报告_[数据结构与算法系列]排序算法(二)

    我的上一篇文章向大家介绍了排序算法中的冒泡排序.插入排序和选择排序.它们都是平均时间复杂度为 O(n^2) 的排序算法,同时还为大家讲解了什么是原地排序和什么是排序的稳定性.下图是这三种算法的比较,不 ...

  8. 排序算法——希尔排序(缩小增量排序)

    1.希尔排序思想: 希尔排序就是把数据分成若干份子序列,从第一个元素开始,和每间隔为n的元素分成一个子序列,对每一份子序列实行直接插入排序,然后合并成一个新序列,继续对新序列以间隔m分成若干份,继续重 ...

  9. 数据结构与算法 | 直接插入排序、希尔排序

    前几章讲了选择排序中的直直接选择排序.双向选择排序.堆排序,这次来讲讲利用'插入'为核心来实现的插入排序算法. 插入排序 把待排序的记录按其关键码值的大小逐个插入到一 个已经排好序的有序序列中,直到所 ...

最新文章

  1. python scapy 函数_【python|scapy】sprintf输出时raw_string转string
  2. 无法打开物理文件 X.mdf。操作系统错误 5:5(拒绝访问。)
  3. Android Studio——[Missing essential plugin: org.jetbrains.android ...]解决方案
  4. Codeforces 1480B. The Great Hero(阅读模拟题,注意数据范围和攻击顺序)
  5. 院士发言:有高校博士后待遇比国际平均水平高出一倍,这不正常!
  6. 手动创建一个标准web工程
  7. 关于QT中对窗口中某个widget建类
  8. 编码器正反转识别方法
  9. 树莓派chromium浏览器 kiosk 全屏提示错误
  10. 一个国企老兵给后辈们的忠告:三十岁之前远离国企
  11. 关于tomcat中Host中appBase与docBase的关系
  12. Gartner 发布 2022 年人工智能技术成熟度曲线:复合 AI、决策智能快速发展,因果 AI 是热点
  13. ISO7816 调试心得
  14. BigDecimal.ROUND_的各种用法
  15. 数据分析|SQL面试题集锦
  16. springboot集成swagger页面空白解决方法
  17. Archlinux arm的国内镜像源(for Banana Pi / Raspberry Pi , etc)
  18. OpenGL画三角形
  19. 小胖机器人宣传语_智能机器人推广宣传语
  20. 机器学习——贝叶斯算法(一)

热门文章

  1. hdu 1176 馅饼
  2. CuteEditor6.0使用配置心得体会(转)
  3. 12-思科防火墙:ASA会话超时
  4. 免费SSL证书(支持1.0、1.1、1.2)
  5. Petuum - Careers
  6. 限制MySQL Binlog的传输速率
  7. XenDesktop 5 SQL Server Mirror事务日志比较大的原因分析
  8. C#将Json字符串反序列化成List对象类集合
  9. 在ubuntu中为程序添加图标快捷键
  10. Sql Server 2008将数据库导出sql脚本并导出数据