题目描述

小X终于意识到需要花大力气减重了,他询问了若干个减重专家后决定采用最适合年轻人的运动减重 方案,考虑再三,小X最终选择了打羽毛球的方式,一个原因是小X的小伙伴大都喜欢打羽毛球,其次是打羽毛球要抬头,对活动颈椎有好处,刚好可以缓冲编程久了对颈椎的压迫。

经过一个月的努力,小X的国际象棋 AI 在机器学习的环境中进步神速,已经能够轻松战胜深蓝了, 但小X的体重却没有太大变化,离第一目标 Q 老师尚有一段距离,这天小X跟往常一样白天打羽毛球,晚上训练 AI 后就睡觉了,睡梦中小X梦见自己先是被一束强光罩住了,随后被吸进了 UFO,落到了 UFO 的甲板上,只见一只会说人话的机器狗迎上前来,对小X说:“小X先生好,我家主人在会客舱等你多时了!”随后小X被带到了一位长了三只眼的外星首领面前。

外星首领很友善地和小X握了手,然后对小X说:“你做的 AI 非常棒,我已经很多年未遇对手了,今天跟你的 AI 打得旗鼓相当,十分过瘾,这次请你来作客是想和你交个朋友,你有什么要求尽管提,我们会尽量满足!”小X听罢受宠若惊,心想外星科技这么发达,也许有办法让我立刻变得像中天学长一样帅!于是小X提出了这个超高难度的要求,外星首领听后微微一笑:“你这个要求可以满足,但我们要对你的基因进行一次分析,把你基因中的肥胖基因找出来,然后给它们加上锁!象我们熟知的那样,人类的基因序列(英文缩写为 DNA)是一个由字母’A’,‘C’,‘G’,'T’组成的字符串,肥胖基因是其中的一个子串(子串为原串中一段连续的字符),外星人对小X的基因手术过程是这样的:先找出所有的肥胖基因,并将它们用基因墨水染成红色,然后将某些字符加上基因锁,一把基因锁只能锁住一个字符,一个肥胖基因只要有一个字符加上了基因锁,则这个肥胖基因就不再起作用,现在要你计算有多少个字符被基因墨水染成了红色?最少需要多少把基因锁才能将所有的肥胖基因锁住?

输入

第一行包含两个用空格隔开的正整数 L1,L2,表示小X基因的长度和肥胖基因的长度。第二行为一个长度为 L1 的字符串,表示小X的基因。
第三行为一个长度为 L2 的字符串,表示肥胖基因。数据保证 L1>L2。

输出

输出一行包含两个整数,表示被基因墨水染成了红色的字符个数和所需的基因锁数量,两数之间严格 用一个空格隔开。

数据范围限制

10 % 10\% 10%的数据,肥胖基因为单个字符
40 % 40\% 40%的数据,所有的肥胖基因互相不重叠
100 % 100\% 100%的数据,基因长度不超过 1 0 6 10^6 106,肥胖基因长度不超过 10 10 10,保证字符只会出现’ A A A’,’ C C C’,’ G G G’,’ T T T’

题解

暴力遍历一次就行了,复杂度最高为O(10n)。

用vis记录遍历过的且没有遇到重叠的,如果遇到重叠的,不需要锁,然后用vis1记录重叠之后的肥胖基因的部分,如果你还用vis记录,那么下次遇到重叠,如果那重叠的部分和前面的也重叠,但那重叠的部分没有配锁,答案就错了。

Code

#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
int vis[1000005],vis1[1000005];
int n,m,lens,lenstr;
char s[1000005],str[15];
int main()
{cin >> n >> m;cin >> s >> str;lens = strlen(s),lenstr = strlen(str);int ansnum = 0,ans = 0;for (int i = 0;i < lens;i++){if(s[i] != str[0]) continue;int f = 0, t = i;for (int j = 0;j < lenstr;j++) {if(s[t++] != str[j]){f = 1;break;}}if(!f){int t = 0;for (int j = i;j < i + lenstr;j++){if(vis[j]){t = 1;for (;j < i + lenstr;j++) vis1[j] = 1;break;}vis[j] = 1;}if(!t) ans++;}}for (int i = 0; i < lens; i++)if(vis[i] || vis1[i]) ansnum++;cout << ansnum  << " " << ans;return 0;
}

[jzoj]2272. 基因锁相关推荐

  1. 超神学院基因计算机,第一章超神世界

    地球,华夏,巨峡市 天风集团 '主人,刚刚我在巨峡市一个叫超神学院一些资料咯面发现了一些有趣的事情,是关于外星文明的事情'一个充满科幻的实验室里,一个纯白色机器人对着一个26.7的青年恭敬说道. '哦 ...

  2. (15.1.5.2)当抗日神剧遇上轻小说(我已笑抽)

    起因是因为微博博主@装甲北极熊 发了一条微博: "求求各位大导演别你尼玛再让八路拿轻小说的语气说话了,这尼玛违和感都彪到斯大林格勒了好嘛?" 然后底下的评论就爆了.这里收集了一些点 ...

  3. intj 沙箱 虚拟机

    INTJ为何有如此独特的思维方式?来看看他们的沙箱功能 2021-05-08 分类:INTJ 阅读(7908) 评论(2) 在所有人群中,INTJ型性格栈总人口的1.5%, 如果援引凯泽西的数据,可能 ...

  4. 强化一波 hooks,这次咱们换个发力点

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 首先hooks已经推出很久,想必大家或多或少都使用过或者了解过hooks,不知是否会和我一样 ...

  5. 强话一波hooks,这次咱们换个发力点

    点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 首先hooks已经推出很久,想必大家或多或少都使用过或者了解过hooks,不知是否会和我一样都有一种感受,那就是hooks使 ...

  6. 国内版ChatGPT要来了?基于GPT的文本生成一键体验

    ★★★ 本文源自AI Studio社区精品项目,[点击此处]查看更多精品内容 >>> 项目概述 本项目从零开始构建了一个用于文本生成的语言模型,模型采用Transformer架构,数 ...

  7. JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异

    Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...

  8. 【广度优先搜索】N叉树的层序遍历 | 腐烂的橘子 | 单词接龙 | 最小基因变化 | 打开转盘锁

  9. 基因行业容器存储解决方案

    1.基因行业背景 1.1. 中国基因市场分析 基因组学是未来精准医疗的"基石".70%的基因企业选择使用云计算来处理基因组相关业务.过去一年内,阿里云为基因医学影像数据提供了安全可 ...

最新文章

  1. P - The Shortest Path in Nya Graph HDU - 4725
  2. 人工智能图像到图像转换图像分割任务中语义一致的图像到图像转换
  3. CTFshow 命令执行 web44
  4. linux查看发ftp的ip地址,linux常用命令及学习小结(4)--IP设置、samba、ftp
  5. Easy Math(ACM-ICPC 2018 徐州赛区网络预赛)(递归 + 杜教筛)
  6. ssm中spring mvc找不到控制器,报错404
  7. 2018.08.09洛谷P3959 宝藏(随机化贪心)
  8. oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表
  9. 索引器(C# 编程指南)
  10. 找不到该项目,请确认该项目的位置的办法(转)
  11. 用HTML+css制作一个简单的三级导航
  12. 海思开发记录(一):3559A开发环境搭建
  13. UFS Hibernate介绍--代码部分
  14. android相机固定焦距,android Camera 设置焦距
  15. 怎么查询Mysql数据库的版本号?(2种常用的方法)
  16. ASCII 碼: 转义字符,正则表达式,特殊字符,模式匹配
  17. 第十五篇 项目整体管理__项目启动会议、项目目标
  18. Hadoop_GJF_MBY
  19. JavaScript: 世界上最被误解的语言|Douglas Crockford
  20. 在C++中响铃的两种方法

热门文章

  1. wps二维码根据一列自动生成_拯救秃头!WPS还能这么玩?
  2. 图解LeetCode——782. 变为棋盘(难度:困难)
  3. SpringAOP所需jar包(cglib、aopalliance、aspectj.weaver)
  4. 今天小金子分享一下我从开始学习编程以来的感受
  5. Allegro中旋转、镜像多个元器件
  6. Skynet服务器框架(九) snax框架
  7. HDU 1079 Calendar Game (博弈)
  8. python web项目源码下载_python web 源码范例
  9. 弘辽科技:淘宝新品上架推广难,掌握正确推广方法很重要
  10. 【树莓派C语言开发】实验06:轻触开关模块