• CSUST 2009-Longest Subarray(队列的应用)


    题目链接:http://acm.csust.edu.cn/problem/2009
    CSDN食用链接:https://blog.csdn.net/qq_43906000/article/details/107664641
    Description

    You are given two integers (C),(K) and an array of (N) integers (a_1,a_2,cdots,a_N)It is guaranteed that the value of (a_i) is between (1) to (C)

    We define that a continuous subsequence (a_{l},a_{l+1},...,a_r(l leq r)) of array a is a good subarray if and only if the following condition is met:
    (forall xin [1,C],sum_{i=l}^{r}[a_i=x]leq K)

    It implies that if a number appears in the subarray, it will appear no greater than (K) times.

    You should find the longest good subarray and output its length. Or you should print (0) if you cannot find any.

    Input
    Each case starts with a line containing three positive integers (N,K,C (1 leq N,K,C leq 300000))

    The second line contains (N) integer (a_1,a_2,cdots a_N(1leq a_ileq C))

    Output
    For each test case, output one line containing an integer denoting the length of the longest good subarray.

    Sample Input 1
    5 1 3
    1 2 3 1 2

    Sample Output 1
    3

    emmm,CSUSTOJ为数不多的几道英文题面QWQ,实际上挺简单的。

    题目大意:让你找到一个最长的的连续子序列,使得这个子序列中每个元素出现的次数小于等于(K)

    既然是找连续的,那么这个就很简单了,一旦碰到出现次数大于(K)的,我们将前面的元素一直往外抛就完事了,这不就是个队列的问题了嘛。

    以下是AC代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int mac=3e5+10;
    
    int vis[mac],a[mac];
    
    int main(int argc, char const *argv[])
    {
    	int n,k,c;
    	scanf ("%d%d%d",&n,&k,&c);
    	for (int i=1; i<=n; i++)
    		scanf ("%d",&a[i]);
    	int ans=0,j=1;
    	for (int i=1; i<=n; i++){
    		vis[a[i]]++;
    		while (vis[a[i]]>k){
    			vis[a[j]]--; j++;
    		}
    		ans=max(ans,i-j+1);
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
    路漫漫兮
  • 相关阅读:
    排序
    阿里实习 电面,面试
    外部排序
    error: LNK 2019 无法解析的外部符号
    c++ 变量定义 的初始化规则
    Spring 让 LOB 数据操作变得简单易行
    深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
    Spring jdbc call oralce procedure or function
    JSON 简单封装
    extjs3 用户管理 页面
  • 原文地址:https://www.cnblogs.com/lonely-wind-/p/13397273.html
Copyright © 2020-2023  润新知