心得:这一道题其实就是自己打暴力打出来的

没有想到正解真的就是暴力枚举

我的做法是这样的

就是枚举A字符串中长度为x的子串

看它是不是B串的子序列

接下来是我的绝望考试代码(100分AC)

//light
/*
这一道题我个人的思路就是二分答案+暴力 */
#include<bits/stdc++.h>
using namespace std;
string A,B;
/*
可以逆序枚举字符串,用ne[i][j]表示i位置的下一个j+'a’字母的位置
*/
int ne[][];/*
void Yuchuli(){
for(int i=B.length()-1;i>=0;i--){
int j=B[i]-'a';
int k=i-1;
while(k>=0&&B[k]-'a'!=j){
ne[k][j]=i;
k--;
// cout<<k<<' '<<j<<' '<<B[i]<<endl;
}
if(B[k]-'a'==j)
ne[k][j]=i;
}
}*/
int Zixulie(int l,int r){
int i=l;int k=;
// cout<<l<<" "<<r<<endl;
while(k<B.length()){
// j=ne[j][A[i]-'a'];
int flag=;
for(int j=k;j<B.length();j++)
if(A[i]==B[j]){
flag=;
// cout<<i<<" "<<A[i]<<" "<<j<<" "<<B[j]<<" "<<k<<endl;
k=j+;i++;
//cout<<i<<" "<<j<<endl;
break;
}
if(flag==)
break;
}
if(i>r)
return ;
else
return ;
}
bool check(int llenA){
//现在既然已经预处理出来了 就枚举区间 判断是否是子序列
for(int i=;i+llenA-<A.length();i++)
if(Zixulie(i,i+llenA-)==)
return false;
return true;
}
int main()
{
//freopen("light.in","r",stdin);
//freopen("light.out","w",stdout);
cin>>A>>B;
// Yuchuli();
// for(int i=0;i<B.length();i++){
// for(int j=0;j<26;j++)
// cout<<ne[i][j]<<" ";
// cout<<endl;
// } int l=,r=,ans=-;
while(l<r){
int mid=(l+r)>>;
if(mid>A.length()||mid>B.length()){
r=mid-;
continue;
}
// cout<<l<<" "<<r<<endl;
if(check(mid)==){
ans=mid;
r=mid;
}
else
l=mid+;
}
cout<<ans;
return ;
}/*
aabbcc
abcabc Tido 2019/7/25 星期四 10:41:04
abcdefddbba
aabbcce */

可以看出来,我把这一道题想复杂了

或者说我觉得这道题很麻烦以至于自己的代码很麻烦

我在程序中的很多地方其实是不必要的

例如二分答案

其实一个个从小往大枚举就行(其实都行)

然后我判断的地方一开始也有一点麻烦

这一道题老师的正解是

就是枚举以i为起点,长度为j的子串 最多也就n2

(》》我一开始还在考虑优化)

n最大2000 20002 =4000000=4*106其实还是可以接受的饿哦

综上所述这一道题就是一个超级简单的模拟枚举暴力求解啦

以后在做题的时候稍微对自己的想法和思路有点信心

以后还要学会自己算一下时间复杂度和空间大小,避免卡bug!

Biu加油

light题目讲解 7.25模拟赛T1的更多相关文章

  1. 12.25模拟赛T1

    可以区间dp,但是复杂度太高. 所以应该是贪心,怎么贪心呢? 这种题目,最好还是手玩找一些规律. 可以发现,由于保证可以m次填完,所以颜色之间没有相互包含关系. 比较像分治的模型. 所以考虑拿到一个区 ...

  2. 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物

    T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...

  3. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  4. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  5. 【2019.7.25 NOIP模拟赛 T1】变换(change)(思维+大分类讨论)

    几个性质 我们通过推式子可以发现: \[B⇒AC⇒AAB⇒AAAC⇒C\] \[C⇒AB⇒AAC⇒AAAB⇒B\] 也就是说: 性质一: \(B,C\)可以相互转换. 则我们再次推式子可以发现: \[ ...

  6. NOIP欢乐模拟赛 T1 解题报告

    小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...

  7. [NOIP2018校模拟赛]T1 阶乘

    题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...

  8. [NOIP2018校模拟赛]T1聚会 party

    题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...

  9. 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)

    打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...

随机推荐

  1. Mule自带例子之flight-reservation

    1 配置效果图 2 应用的配置文件 <?xml version="1.0" encoding="UTF-8"?> <mule xmlns:sc ...

  2. [转]1.2 java web的发展历史

    前言 了解java web的发展历史和相关技术的演进历程,非常有助于加深对java web技术的理解和认识. 阅读目录 1.Servlet的出现 2.Jsp的出现 3.倡导了MVC思想的Servlet ...

  3. 【图数据库】史上超全面的Neo4j使用指南

    转自:https://cloud.tencent.com/developer/article/1336299 在这篇文章中: 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章 ...

  4. 【t085】Sramoc问题

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] Sramoc(K,M)表示用数字0,1,2,...,K-1组成的自然数中能被M整除的最小数.给定K,M ...

  5. Scheduler

    先看看文档对于Scheduler的作用介绍 https://code4craft.gitbooks.io/webmagic-in-action/content/zh/posts/ch1-overvie ...

  6. 三星s5830刷机小记

    拿起好久没用的三星s5830手机,看了看手机内存所无几,运行十分缓慢,就想着收拾下,当个备机用,在刷机前我做了个小实验,先把手机root,安装RE管理器,把system/app下的所有东西都删了,因为 ...

  7. UVa 11134 - Fabled Rooks——[问题分解、贪心法]

    We would like to place n rooks, ≤ n ≤ , on a n × n board subject to the following restrictions • The ...

  8. dotnet 使用 Qpush 快速从电脑到手机推送文字

    在手机打字总不是方便,于是就有了 Qpush 这个工具,通过这个工具可以快速从电脑到手机推送文字. 但是这个工具没有找到客户端,于是我就给他写了一个库,通过这个库可以快速进行开发 先介绍QPush 快 ...

  9. 原生PHP实现Mysql数据分页功能

    一. 思路整理 实现一个数据分页功能,需要有数据的总条数,每页展示的条数,和当前在第几页这三个参数 通过⌈总条数/每页展示的条数⌉可以得到总页数,比如某留言板有101条留言,每页展示10条,一那就需要 ...

  10. H3C 根据子网数划分子网