zoukankan      html  css  js  c++  java
  • 3377: [Usaco2004 Open]The Cow Lineup 奶牛序列

    3377: [Usaco2004 Open]The Cow Lineup 奶牛序列

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 16  Solved: 11
    [Submit][Status][Discuss]

    Description

        约翰的N(1≤N≤100000)只奶牛站成了一列.每只奶牛都写有一个号牌,表示她的品种,号牌上的号码在1…K(1≤K≤10000)范围内.比如有这样一个队列
        1,5,3,2,5,3,4,4,2,5,1,2,3
    根据约翰敏锐的数学神经,他发现一些子序列在这个队列里出现,比如3,4,1,3,而另一些没有.子序列的各项之间穿插有其他数,也可认为这个子序列存在, 现在,他想找出一个最短的子序列(由1..K组成),使之不在奶牛序列里出现.达个子序列的长度是多少呢?

    Input

     
        第1行输入两个整数N和K,接下来N行输入奶牛序列.

    Output

     
        最短的不出现子序列.

    Sample Input

    14 5
    1
    5
    3
    2
    5
    1
    3
    4
    4
    2
    5
    1
    2
    3

    Sample Output

    3
    样例说明
    所有的长度为1和为2的子序列都出现.长度为3的序列“2,2,4”不出现

    HINT

     

    Source

    Green

    题解:这是一道很神的乱搞题。。。居然结果弄来弄去是完全连续块的个数+1

    (完全连续块表示连续的某一段包含了所有的数字,比如样例(1,5,3,2,5,1,3,4),(4,2,5,1,2,3)可以分成两块,所以答案是2+1=3)

     1 /**************************************************************
     2     Problem: 3377
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:84 ms
     7     Memory:304 kb
     8 ****************************************************************/
     9  
    10 var
    11    i,j,k,l,m,n:longint;
    12    a:array[0..20000] of longint;
    13 begin
    14      readln(n,m);l:=0;k:=1;
    15      for i:=1 to n do
    16          begin
    17               readln(j);
    18               l:=l+k-a[j];
    19               a[j]:=k;
    20               if l=m then
    21                  begin
    22                       inc(k);
    23                       l:=0;
    24                  end;
    25          end;
    26      writeln(k);
    27      readln;
    28 end.          
  • 相关阅读:
    python 2 和 python 3 的区别
    random模块、time模块、sys模块、os模块
    正则表达式
    生成器 推导式 生成器表达式
    免费的论文查重网站
    Django 13
    pycharm连接mysql出错解决方案
    前端 51
    前端 50
    前段 49
  • 原文地址:https://www.cnblogs.com/HansBug/p/4424447.html
Copyright © 2011-2022 走看看