当前位置: 首页 > news >正文

服务器安装网站郑州网站制作公司哪家好

服务器安装网站,郑州网站制作公司哪家好,wordpress 照片主题,无极招聘网最新招聘P1638 逛画展 - 洛谷 | 计算机科学教育新生态 这道题我们只要用一个kind和一个mp[N]的数组就能解决了 我们的解法1就是暴力枚举,先固定2,从2开始找连续的满足所有种类的最短的子数组,然后固定5,3,1,3&…

P1638 逛画展 - 洛谷 | 计算机科学教育新生态

这道题我们只要用一个kind和一个mp[N]的数组就能解决了

我们的解法1就是暴力枚举,先固定2,从2开始找连续的满足所有种类的最短的子数组,然后固定5,3,1,3,2,分别找出满足所有种类的最短子数组

mp[i]如果是从0到1,kind++,如果是从1到0,kind--

如图,暴力枚举的话j指向的一定是第一次出现的最新的元素种类,如果我们是暴力枚举的话,我们枚举5的时候,j也会回到5

我们对5枚举的时候,j一定会再走到4那个位置,我们何必让j回退呢?

那我们的算法流程就是用left和right指针指向第一个元素,然后让right指针向后走把每个元素进窗口,如果kind种类够了的话,left不断++,再不断更新每个合法的子数组的大小,直到kind不够了再退出去继续right向后走

比如这是一种结果,2出窗口后又是一个结果 

5出窗口后种类不够了,j向后走

不满足要求就不更新结果直到再次符合要求,我们再次让left出窗口

到这里把3出窗口之后再次成为不合法数组

再次合法,继续出left,出了一个就不合法了,right向后走一格,结束

我们来展示一下代码

#include <iostream>
using namespace std;const int N = 1e6+10;
int n,m;
int mp[N];
int a[N];
int main()
{cin >> n  >> m;for(int i = 1;i<=n;i++) cin >> a[i];int kind = 0;int left = 1 , right = 1;int ret = n,begin = 1;while(right<=n){if(mp[a[right]]++ == 0) kind++;while(kind == m){int len = right-left+1;if(len < ret){ret = len;begin = left;}if(mp[a[left]]-- == 1) kind--;left++;}	right++;}cout << begin <<" " << begin+ret-1<< endl;return 0;
}

http://www.dt0577.cn/news/16493.html

相关文章:

  • 南阳 直销网站开发软文广告经典案例300字
  • jsp网站开发具体步骤如何在各大网站发布信息
  • 老外做摄影网站花多少钱seo视频教程汇总
  • 网页视频怎么下载高清北京seo推广外包
  • 一家专做有机蔬菜的网站长沙疫情最新数据消息
  • 简单的网站建设步骤泾县网站seo优化排名
  • 昆明网站优化工具全网关键词云在哪里看
  • 中国能源建设集团有限公司总部seo流量排名软件
  • 如何确定网站建设 栏目广州网站优化方案
  • html5高端酒水饮料企业网站模版网络广告的优势有哪些
  • 宝塔做的网站网页打不开浅议网络营销论文
  • 网站加百度地图it教育培训机构
  • 网站开发轮播图市场营销推广活动方案
  • 网站制作的公有道搜索引擎入口
  • wordpress主题站模板下载优化系统的软件
  • 济南高新网站建设培训学校招生方案
  • 张店政府网站建设托管湖南网站排名
  • wordpress多站点独立域名id郑州网站策划
  • 黄冈网站建设哪家专业最新病毒感染什么症状
  • 普升高端品牌网站建设新媒体营销
  • 石家庄网站建设推广公司注册自己的网站
  • 网站要求seo外链资源
  • 萝岗网站建设制作全国分站seo
  • 珠海做网站建设怎样推广自己的商城
  • 网站数据库如何备份搜索引擎推广的三种方式
  • 手机网站建设域名空间上海百度首页优化
  • 阿里做外贸是哪个网站社交媒体营销案例
  • axture做网站纵横seo
  • 花都手机网站建设北京seo优化分析
  • 衡水冀县做网站app怎么推广