light题目讲解 7.25模拟赛T1
心得:这一道题其实就是自己打暴力打出来的
没有想到正解真的就是暴力枚举
我的做法是这样的
就是枚举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的更多相关文章
- 12.25模拟赛T1
可以区间dp,但是复杂度太高. 所以应该是贪心,怎么贪心呢? 这种题目,最好还是手玩找一些规律. 可以发现,由于保证可以m次填完,所以颜色之间没有相互包含关系. 比较像分治的模型. 所以考虑拿到一个区 ...
- 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- 20180610模拟赛T1——脱离地牢
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...
- 【2019.7.25 NOIP模拟赛 T1】变换(change)(思维+大分类讨论)
几个性质 我们通过推式子可以发现: \[B⇒AC⇒AAB⇒AAAC⇒C\] \[C⇒AB⇒AAC⇒AAAB⇒B\] 也就是说: 性质一: \(B,C\)可以相互转换. 则我们再次推式子可以发现: \[ ...
- NOIP欢乐模拟赛 T1 解题报告
小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...
- [NOIP2018校模拟赛]T1 阶乘
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...
- [NOIP2018校模拟赛]T1聚会 party
题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...
- 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)
打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...
随机推荐
- 插播一条 WMI修复教程
一般情况下,WMI都会好好的工作,但偶尔也会出现小问题. 这些小问题会影响到正在使用WMI的程序,比如设置的有线和无线网络依然还是依赖WMI的.如果WMI自己都没办法工作,有些数据就获取不到了. 先看 ...
- 【7003】&&【a203】合并多项式
Time Limit: 3 second Memory Limit: 2 MB 问题描述 求两个一元多项式的和.输入多项式方式为:多项式项数.每项系数和指数,按指数从大到小的顺序输入.输出多 ...
- Linux 内核 EISA 总线
扩展 ISA (EISA) 总线是一个对 ISA 的 32-位 扩展, 带有一个兼容的接口连接器; ISA 设备板可被插入一个 EISA 连接器. 增加的线在 ISA 接触之下被连接. 如同 PCI ...
- Comet OJ - Contest #5
Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下, ...
- dotnet 获取指定进程的输入命令行
本文告诉大家如何在 dotnet 获取指定的进程的命令行参数 很多的程序在启动的时候都需要传入参数,那么如何拿到这些程序传入的参数? 我找到两个方法,一个需要引用 C++ 库支持 x86 和 x64 ...
- git常用常用操作指令
GIT操作 1:git init 初始化空的仓库,会在当前文件夹生成一个隐藏.git的文件夹,相当于一个仓库. 2:提交代码的流程:工作代码区-->暂存区 -->主仓库 -->服务器 ...
- git authentication failed for 或 fatal:not a git repository
第一种解决 (我的是第一种解决) github上更改密码之后,我在本地操作git发现出错,错误代码如上,在网上搜了一圈,没有解决问题,后发现需要进行如下操作: 进入控制面板>用户账号>凭据 ...
- Mybatis的mapper.xml文件详解
1.#{}和${}的区别: #{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo.hashmap. 如果接收简单类型,#{}中可以写成value或其它名称. ...
- zabbix脚本监控mysql
Zabbix监控mysql 1.1 客户端配置 1.1.1 安装客户端包 yum -y install unixODBC rpm -ivh zabbix-agent--.el6.x86_64.rpm ...
- Django 开发项目创建
创建项目环境 """ 为项目创建一个虚拟环境 >: mkvirtualenv 环境名 """ """ 按 ...