题目大意:给出一个有n个数的序列,找出最短的涵盖1~k之间所有整数的连续区间。

题目分析:扫描一遍序列,维护head、tail两个位置。要注意,最短的区间上两端的数一定[1,k]上。

代码如下:

# include<iostream>
# include<cstdio>
# include<cstring>
# include<algorithm>
using namespace std;const int INF=1<<30;
int n,m,k,a[1000005],mark[1005];bool ok()
{for(int i=1;i<=k;++i)if(!mark[i])return false;return true;
}int solve()
{if(k<=3)return k;memset(mark,0,sizeof(mark));int head=0,tail,ans=INF;a[0]=1,a[1]=2,a[2]=3;mark[1]=mark[2]=mark[3]=1;for(tail=3;tail<n;++tail){a[tail]=(a[tail-1]+a[tail-2]+a[tail-3])%m+1;++mark[a[tail]];while(head<=tail&&(a[head]<1||a[head]>k||mark[a[head]]>1))--mark[a[head++]];if(tail-head+1>=k&&tail-head+1<ans&&ok())ans=tail-head+1;}return ans;
}int main()
{int T,cas=0;scanf("%d",&T);while(T--){scanf("%d%d%d",&n,&m,&k);printf("Case %d: ",++cas);if(n<k||k>m){printf("sequence nai\n");continue;}int ans=solve();if(ans==INF)printf("sequence nai\n");elseprintf("%d\n",ans);}return 0;
}

  

转载于:https://www.cnblogs.com/20143605--pcx/p/4878258.html

UVA-11536 Smallest Sub-Array相关推荐

  1. uva 11536——Smallest Sub-Array

    题意:给定n个数,这n个数在m的范围之内.v[i]=(v[i-1]+v[i-2]+v[i-3])%m+1;   然后求一个最短连续子序列使得序列内包括1-k个数. 思路:枚举.枚举以v[i]结尾的最短 ...

  2. UVa 11536 最短子序列(Smallest Sub-Array)

    题意: 有n个0~m-1的整数组成一个序列.输入k,你的任务是尽量找到一个短一点的连续子序列使得该序列包含1-k的所有整数. 最大序列是生成的,生成在代码中 分析: 二分查找一个位置,长度a不成立 b ...

  3. UVA 12300 Smallest Regular Polygon(正多边形)

    题意:给出两点,求经过这两点的正n边形的最小面积 题解:这两点一定是最长的弦,我们设正多边形中点c,找到c到每个点的距离(都相同) 我们知道那个等腰三角形的底与每个角度就使用余弦定理 #include ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. python里删除range里的数字_python中range函数与列表中删除元素

    一.range函数使用 range(1,5)   代表从1到4(不包含5),结果为:1,2,3,4   ,默认步长为1 range(1,5,2)   结果为:1, 3  (同样不包含5) ,步长为2 ...

  6. c语言subscripted_c语言。数组的问题。急!

    题目是这样的:Useasingle-subscriptedarraytosolvethefollowingproblem.Readin20numbers,eachofwhichisbetween10a ...

  7. codeforces每日5题(均1700)-第七天

    Multicolored Cars 题面翻译 [题目描述] 定义cntx(i)cnt_{x}(i)cntx​(i)表示到iii时刻xxx出现过的个数. 现在给出nnn个数a1,a2--ana_{1}, ...

  8. cf----2019-10-23( Posterized,Pair Of Lines,Greedy Arkady)

    一场游戏一场空,最终 最初都由我掌控,好像一身从容,不曾有狼狈伤痛,可深夜一个人该如何相拥? Professor Ibrahim has prepared the final homework for ...

  9. 老男孩上海校区Python面试题

    python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...

  10. uva 11997 K Smallest Sums 优先队列处理多路归并问题

    题意:K个数组每组K个值,每次从一组中选一个,共K^k种,问前K个小的. 思路:优先队列处理多路归并,每个状态含有K个元素.详见刘汝佳算法指南. 1 #include<iostream> ...

最新文章

  1. CGIC简明教程(转摘)
  2. 在 Delphi 下使用 DirectSound (5): 获取或设置缓冲区的格式:
  3. 团队作业8----第二次项目冲刺(Beta阶段) 第六天
  4. 邂逅 2008-06-27 23:24
  5. 反手发力动作--乒在民间
  6. pythonmessage用法_django 消息框架 message使用详解
  7. Charles 抓包 从入门到精通
  8. [Leedcode][JAVA][第84题][柱状图中最大的矩形][暴力][单调栈]
  9. 2020年A股IPO市场全景回顾与2021年前景展望报告
  10. 非极大值抑制(NMS)
  11. 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数
  12. 阿里云mysql写入性能_如何评价阿里云新一代关系型数据库 PolarDB?
  13. Typecho中的gravatar头像无法加载
  14. 解决Hash冲突的两种策略
  15. excel实现join功能
  16. 从底层到应用,那些数据人的必备技能
  17. [Nikon D80]南京新庄立交桥
  18. 分布式系列之分布式存储ceph初识
  19. linux远程连接ssh服务和http的深入介绍
  20. 《疯狂Java讲义》读书笔记7

热门文章

  1. HDU-1027 组合数 STL-next_permutation
  2. Javascript中的翻转器
  3. NHibernate 做个小项目来试一下吧 一
  4. NTP时间服务器实现Linux时间同步
  5. 5 Vim编辑器的使用
  6. Python 3.8.0a2 发布,面向对象编程语言
  7. Oracle宣布新的Java Champions
  8. Exchange server 2010系列教程之三 发送邮件测试
  9. 简单了解tengine
  10. Redis(1):简介