博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ 3320】Jessica's Reading Problemc(尺取法)
阅读量:6893 次
发布时间:2019-06-27

本文共 708 字,大约阅读时间需要 2 分钟。

题意

P个数,求最短的一段包含P个数里所有出现过的数的区间。

分析

  尺取法,边读边记录每个数出现次数num[d[i]],和不同数字个数n个。

  尺取时,l和r 代表区间两边,每次r++时,d[r]即r的出现次数+1,d[l]即l的出现次数大于1时,左边可以短一点,d[l]--,l++,直到d[l]出现次数为1,当不同数达到n个,且区间更小,就更新答案。

代码

#include 
#include
using namespace std;map
num,v;int p,l,r,n,cnt;int d[1000005];int ans=9999999;int main(){ scanf("%d", &p); for (int i = 0; i < p; i++) { scanf("%d",&d[i]); if (num[d[i]]==0) { n++; } num[d[i]]++; } l=0; r=0; while(l

1) { v[d[l]]--; l++; } if (cnt==n && r-l < ans) { ans=r-l; } } printf("%d",ans); return 0;}

 

  

转载地址:http://jpzdl.baihongyu.com/

你可能感兴趣的文章
webOS 更名 LuneOS,新版本名为 Affogato
查看>>
《UNIX环境高级编程(第3版)》——导读
查看>>
11_Eclipse中演示Git版本的创建,历史版本的修改,创建分支,合并历史版本和当前版本...
查看>>
《实施Cisco统一通信管理器(CIPT1)》一1.2 CUCM概述
查看>>
《容器技术系列》一1.1 引言
查看>>
Ceylon IDE 1.2.0 首个维护版本发布
查看>>
《SolidWorks 2016中文版机械设计从入门到精通》——1.8 参考点
查看>>
《互联网+流通——F2R助力传统产业创新与转型》一一1.1 “互联网+”的本质、演进与发展趋势...
查看>>
在经历诸多坑后,Sonar@OSC 重新上线
查看>>
超过 35 万软件包 npm 是世界上最大的包管理器
查看>>
《SolidWorks 2017中文版机械设计从入门到精通)》——1.8 参考点
查看>>
《CUDA C编程权威指南》——2.3 组织并行线程
查看>>
Popcorn Time 的 Github 库被 MPAA 关闭
查看>>
《CMOS集成电路后端设计与实战》——第3章 后端全定制设计之标准单元设计技术...
查看>>
渲染 React 组件到 Sketch 的开源库 React Sketch.app
查看>>
《代码整洁之道:程序员的职业素养》一一1.1 清楚你要什么
查看>>
Red Hat 修补“libuser”库中的漏洞
查看>>
恶意版 FileZilla 窃取用户的FTP帐号
查看>>
编程语言:变革创业思维的工具
查看>>
第一个libgdx程序--仿别踩白块
查看>>